Skip to content

Commit

Permalink
Add field_masking_span to IndexQueryModule
Browse files Browse the repository at this point in the history
The query parser for `field_masking_span` has never been added / bound to
the IndexQueryModule.

Closes elastic#3007
  • Loading branch information
s1monw committed May 7, 2013
1 parent 537a7fc commit 2ab5285
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 0 deletions.
Expand Up @@ -92,6 +92,7 @@ protected void configure() {
qpBinders.addBinding().to(CustomFiltersScoreQueryParser.class).asEagerSingleton();
qpBinders.addBinding().to(SpanTermQueryParser.class).asEagerSingleton();
qpBinders.addBinding().to(SpanNotQueryParser.class).asEagerSingleton();
qpBinders.addBinding().to(FieldMaskingSpanQueryParser.class).asEagerSingleton();
qpBinders.addBinding().to(SpanFirstQueryParser.class).asEagerSingleton();
qpBinders.addBinding().to(SpanNearQueryParser.class).asEagerSingleton();
qpBinders.addBinding().to(SpanOrQueryParser.class).asEagerSingleton();
Expand Down
Expand Up @@ -1538,6 +1538,22 @@ public void testSpanNearQuery() throws IOException {
assertThat(((SpanTermQuery) spanNearQuery.getClauses()[2]).getTerm(), equalTo(new Term("age", longToPrefixCoded(36, 0))));
assertThat(spanNearQuery.isInOrder(), equalTo(false));
}

@Test
public void testFieldMaskingSpanQuery() throws IOException {
IndexQueryParserService queryParser = queryParser();
String query = copyToStringFromClasspath("/org/elasticsearch/test/unit/index/query/spanFieldMaskingTerm.json");
Query parsedQuery = queryParser.parse(query).query();
assertThat(parsedQuery, instanceOf(SpanNearQuery.class));
SpanNearQuery spanNearQuery = (SpanNearQuery) parsedQuery;
assertThat(spanNearQuery.getClauses().length, equalTo(3));
assertThat(((SpanTermQuery) spanNearQuery.getClauses()[0]).getTerm(), equalTo(new Term("age", longToPrefixCoded(34, 0))));
assertThat(((SpanTermQuery) spanNearQuery.getClauses()[1]).getTerm(), equalTo(new Term("age", longToPrefixCoded(35, 0))));
assertThat(((SpanTermQuery)((FieldMaskingSpanQuery) spanNearQuery.getClauses()[2]).getMaskedQuery()).getTerm(), equalTo(new Term("age_1", "36")));
assertThat(spanNearQuery.isInOrder(), equalTo(false));
}



@Test
public void testSpanOrQueryBuilder() throws IOException {
Expand Down
@@ -0,0 +1,29 @@
{
span_near:{
clauses:[
{
span_term:{
age:34
}
},
{
span_term:{
age:35
}
},
{
field_masking_span:{
query:{
span_term:{
age_1 : 36
}
},
field:"age"
}
}
],
slop:12,
in_order:false,
collect_payloads:false
}
}

0 comments on commit 2ab5285

Please sign in to comment.