Example usage for org.apache.lucene.search.spans SpanTermQuery getTerm

List of usage examples for org.apache.lucene.search.spans SpanTermQuery getTerm

Introduction

In this page you can find the example usage for org.apache.lucene.search.spans SpanTermQuery getTerm.

Prototype

public Term getTerm() 

Source Link

Document

Return the term whose spans are matched.

Usage

From source file:org.apache.solr.search.TestSolrCoreParser.java

License:Apache License

private static void checkChooseOneWordQuery(boolean span, Query query, String fieldName,
        String... expectedTermTexts) {
    final Term term;
    if (span) {/*from ww  w  .  j  a  v a 2s .co m*/
        assertTrue(query instanceof SpanTermQuery);
        final SpanTermQuery stq = (SpanTermQuery) query;
        term = stq.getTerm();
    } else {
        assertTrue(query instanceof TermQuery);
        final TermQuery tq = (TermQuery) query;
        term = tq.getTerm();
    }
    final String text = term.text();
    boolean foundExpected = false;
    for (String expected : expectedTermTexts) {
        foundExpected |= expected.equals(text);
    }
    assertEquals(fieldName, term.field());
    assertTrue("expected term text (" + text + ") not found in (" + expectedTermTexts + ")", foundExpected);
}

From source file:org.elasticsearch.index.query.json.SimpleJsonIndexQueryParserTests.java

License:Apache License

@Test
public void testSpanTermQueryBuilder() throws IOException {
    IndexQueryParser queryParser = newQueryParser();
    Query parsedQuery = queryParser.parse(spanTermQuery("age", 34));
    assertThat(parsedQuery, instanceOf(SpanTermQuery.class));
    SpanTermQuery termQuery = (SpanTermQuery) parsedQuery;
    // since age is automatically registered in data, we encode it as numeric
    assertThat(termQuery.getTerm(), equalTo(new Term("age", NumericUtils.longToPrefixCoded(34))));
}

From source file:org.elasticsearch.index.query.json.SimpleJsonIndexQueryParserTests.java

License:Apache License

@Test
public void testSpanTermQuery() throws IOException {
    IndexQueryParser queryParser = newQueryParser();
    String query = copyToStringFromClasspath("/org/elasticsearch/index/query/json/spanTerm.json");
    Query parsedQuery = queryParser.parse(query);
    assertThat(parsedQuery, instanceOf(SpanTermQuery.class));
    SpanTermQuery termQuery = (SpanTermQuery) parsedQuery;
    // since age is automatically registered in data, we encode it as numeric
    assertThat(termQuery.getTerm(), equalTo(new Term("age", NumericUtils.longToPrefixCoded(34))));
}

From source file:org.elasticsearch.index.query.SimpleIndexQueryParserTests.java

License:Apache License

@Test
public void testSpanTermQueryBuilder() throws IOException {
    IndexQueryParserService queryParser = queryParser();
    Query parsedQuery = queryParser.parse(spanTermQuery("age", 34)).query();
    assertThat(parsedQuery, instanceOf(SpanTermQuery.class));
    SpanTermQuery termQuery = (SpanTermQuery) parsedQuery;
    // since age is automatically registered in data, we encode it as numeric
    assertThat(termQuery.getTerm(), equalTo(new Term("age", longToPrefixCoded(34, 0))));
}

From source file:org.elasticsearch.index.query.SimpleIndexQueryParserTests.java

License:Apache License

@Test
public void testSpanTermQuery() throws IOException {
    IndexQueryParserService queryParser = queryParser();
    String query = copyToStringFromClasspath("/org/elasticsearch/index/query/spanTerm.json");
    Query parsedQuery = queryParser.parse(query).query();
    assertThat(parsedQuery, instanceOf(SpanTermQuery.class));
    SpanTermQuery termQuery = (SpanTermQuery) parsedQuery;
    // since age is automatically registered in data, we encode it as numeric
    assertThat(termQuery.getTerm(), equalTo(new Term("age", longToPrefixCoded(34, 0))));
}

From source file:org.elasticsearch.index.query.SpanTermQueryBuilderTests.java

License:Apache License

@Override
protected void doAssertLuceneQuery(SpanTermQueryBuilder queryBuilder, Query query, QueryShardContext context)
        throws IOException {
    assertThat(query, instanceOf(SpanTermQuery.class));
    SpanTermQuery spanTermQuery = (SpanTermQuery) query;
    assertThat(spanTermQuery.getTerm().field(), equalTo(queryBuilder.fieldName()));
    MappedFieldType mapper = context.fieldMapper(queryBuilder.fieldName());
    if (mapper != null) {
        Term term = ((TermQuery) mapper.termQuery(queryBuilder.value(), null)).getTerm();
        assertThat(spanTermQuery.getTerm(), equalTo(term));
    } else {//  ww w. j  a v a2s.  c om
        assertThat(spanTermQuery.getTerm().bytes(), equalTo(BytesRefs.toBytesRef(queryBuilder.value())));
    }
}

From source file:org.elasticsearch.index.query.xcontent.SimpleIndexQueryParserTests.java

License:Apache License

@Test
public void testSpanTermQueryBuilder() throws IOException {
    IndexQueryParser queryParser = queryParser();
    Query parsedQuery = queryParser.parse(spanTermQuery("age", 34)).query();
    assertThat(parsedQuery, instanceOf(SpanTermQuery.class));
    SpanTermQuery termQuery = (SpanTermQuery) parsedQuery;
    // since age is automatically registered in data, we encode it as numeric
    assertThat(termQuery.getTerm(), equalTo(new Term("age", NumericUtils.longToPrefixCoded(34))));
}

From source file:org.elasticsearch.index.query.xcontent.SimpleIndexQueryParserTests.java

License:Apache License

@Test
public void testSpanTermQuery() throws IOException {
    IndexQueryParser queryParser = queryParser();
    String query = copyToStringFromClasspath("/org/elasticsearch/index/query/xcontent/spanTerm.json");
    Query parsedQuery = queryParser.parse(query).query();
    assertThat(parsedQuery, instanceOf(SpanTermQuery.class));
    SpanTermQuery termQuery = (SpanTermQuery) parsedQuery;
    // since age is automatically registered in data, we encode it as numeric
    assertThat(termQuery.getTerm(), equalTo(new Term("age", NumericUtils.longToPrefixCoded(34))));
}

From source file:org.elasticsearch.percolator.ExtractQueryTermsServiceTests.java

License:Apache License

public void testExtractQueryMetadata_spanTermQuery() {
    // the following span queries aren't exposed in the query dsl and are therefor not supported:
    // 1) SpanPositionRangeQuery
    // 2) PayloadScoreQuery
    // 3) SpanBoostQuery

    // The following span queries can't be supported because of how these queries work:
    // 1) SpanMultiTermQueryWrapper, not supported, because there is no support for MTQ typed queries yet.
    // 2) SpanContainingQuery, is kind of range of spans and we don't know what is between the little and big terms
    // 3) SpanWithinQuery, same reason as SpanContainingQuery
    // 4) FieldMaskingSpanQuery is a tricky query so we shouldn't optimize this

    SpanTermQuery spanTermQuery1 = new SpanTermQuery(new Term("_field", "_short_term"));
    Result result = extractQueryTerms(spanTermQuery1);
    assertThat(result.verified, is(true));
    assertTermsEqual(result.terms, spanTermQuery1.getTerm());
}

From source file:org.elasticsearch.percolator.ExtractQueryTermsServiceTests.java

License:Apache License

public void testExtractQueryMetadata_spanNearQuery() {
    SpanTermQuery spanTermQuery1 = new SpanTermQuery(new Term("_field", "_short_term"));
    SpanTermQuery spanTermQuery2 = new SpanTermQuery(new Term("_field", "_very_long_term"));
    SpanNearQuery spanNearQuery = new SpanNearQuery.Builder("_field", true).addClause(spanTermQuery1)
            .addClause(spanTermQuery2).build();

    Result result = extractQueryTerms(spanNearQuery);
    assertThat(result.verified, is(false));
    assertTermsEqual(result.terms, spanTermQuery2.getTerm());
}