@@ -650,4 +650,58 @@ public void testFuzzyQueryString() {
650650 assertThat ("Failures " + Arrays .toString (searchResponse .shardFailures ()), searchResponse .shardFailures ().length , equalTo (0 ));
651651 assertThat (searchResponse .hits ().totalHits (), equalTo (0l ));
652652 }
653+
654+ @ Test
655+ public void testSpecialRangeSyntaxInQueryString () {
656+ client .admin ().indices ().prepareDelete ().execute ().actionGet ();
657+
658+ client .admin ().indices ().prepareCreate ("test" ).setSettings (ImmutableSettings .settingsBuilder ().put ("index.number_of_shards" , 1 )).execute ().actionGet ();
659+ client .prepareIndex ("test" , "type1" , "1" ).setSource ("str" , "kimchy" , "date" , "2012-02-01" , "num" , 12 ).execute ().actionGet ();
660+ client .prepareIndex ("test" , "type1" , "2" ).setSource ("str" , "shay" , "date" , "2012-02-05" , "num" , 20 ).execute ().actionGet ();
661+ client .admin ().indices ().prepareRefresh ().execute ().actionGet ();
662+
663+ SearchResponse searchResponse = client .prepareSearch ()
664+ .setQuery (queryString ("num:>19" ))
665+ .execute ().actionGet ();
666+ assertThat ("Failures " + Arrays .toString (searchResponse .shardFailures ()), searchResponse .shardFailures ().length , equalTo (0 ));
667+ assertThat (searchResponse .hits ().totalHits (), equalTo (1l ));
668+ assertThat (searchResponse .hits ().getAt (0 ).id (), equalTo ("2" ));
669+
670+ searchResponse = client .prepareSearch ()
671+ .setQuery (queryString ("num:>20" ))
672+ .execute ().actionGet ();
673+ assertThat ("Failures " + Arrays .toString (searchResponse .shardFailures ()), searchResponse .shardFailures ().length , equalTo (0 ));
674+ assertThat (searchResponse .hits ().totalHits (), equalTo (0l ));
675+
676+ searchResponse = client .prepareSearch ()
677+ .setQuery (queryString ("num:>=20" ))
678+ .execute ().actionGet ();
679+ assertThat ("Failures " + Arrays .toString (searchResponse .shardFailures ()), searchResponse .shardFailures ().length , equalTo (0 ));
680+ assertThat (searchResponse .hits ().totalHits (), equalTo (1l ));
681+ assertThat (searchResponse .hits ().getAt (0 ).id (), equalTo ("2" ));
682+
683+ searchResponse = client .prepareSearch ()
684+ .setQuery (queryString ("num:>11" ))
685+ .execute ().actionGet ();
686+ assertThat ("Failures " + Arrays .toString (searchResponse .shardFailures ()), searchResponse .shardFailures ().length , equalTo (0 ));
687+ assertThat (searchResponse .hits ().totalHits (), equalTo (2l ));
688+
689+ searchResponse = client .prepareSearch ()
690+ .setQuery (queryString ("num:<20" ))
691+ .execute ().actionGet ();
692+ assertThat ("Failures " + Arrays .toString (searchResponse .shardFailures ()), searchResponse .shardFailures ().length , equalTo (0 ));
693+ assertThat (searchResponse .hits ().totalHits (), equalTo (1l ));
694+
695+ searchResponse = client .prepareSearch ()
696+ .setQuery (queryString ("num:<=20" ))
697+ .execute ().actionGet ();
698+ assertThat ("Failures " + Arrays .toString (searchResponse .shardFailures ()), searchResponse .shardFailures ().length , equalTo (0 ));
699+ assertThat (searchResponse .hits ().totalHits (), equalTo (2l ));
700+
701+ searchResponse = client .prepareSearch ()
702+ .setQuery (queryString ("+num:>11 +num:<20" ))
703+ .execute ().actionGet ();
704+ assertThat ("Failures " + Arrays .toString (searchResponse .shardFailures ()), searchResponse .shardFailures ().length , equalTo (0 ));
705+ assertThat (searchResponse .hits ().totalHits (), equalTo (1l ));
706+ }
653707}
0 commit comments