Example usage for org.apache.lucene.search PhraseQuery PhraseQuery

List of usage examples for org.apache.lucene.search PhraseQuery PhraseQuery

Introduction

In this page you can find the example usage for org.apache.lucene.search PhraseQuery PhraseQuery.

Prototype

public PhraseQuery(String field, BytesRef... terms) 

Source Link

Document

Create a phrase query which will match documents that contain the given list of terms at consecutive positions in field .

Usage

From source file:com.o19s.es.ltr.query.LtrQueryTests.java

License:Apache License

public void testTrainModel() throws IOException {
    String userQuery = "brown cow";
    List<Query> features = Arrays.asList(new TermQuery(new Term("field", userQuery.split(" ")[0])),
            new PhraseQuery("field", userQuery.split(" ")));
    checkModelWithFeatures(toPrebuildFeatureWithNoName(features), null);
}

From source file:com.o19s.es.ltr.query.LtrQueryTests.java

License:Apache License

public void testSubsetFeaturesFuncScore() throws IOException {
    //     public LambdaMART(List<RankList> samples, int[] features, MetricScorer scorer) {
    String userQuery = "brown cow";

    Query baseQuery = new MatchAllDocsQuery();

    List<Query> features = Arrays.asList(new TermQuery(new Term("field", userQuery.split(" ")[0])),
            new PhraseQuery("field", userQuery.split(" ")),
            new FunctionScoreQuery(baseQuery, new WeightFactorFunction(1.0f)));
    checkModelWithFeatures(toPrebuildFeatureWithNoName(features), new int[] { 1 });
}

From source file:com.o19s.es.ltr.query.LtrQueryTests.java

License:Apache License

public void testSubsetFeaturesTermQ() throws IOException {
    //     public LambdaMART(List<RankList> samples, int[] features, MetricScorer scorer) {
    String userQuery = "brown cow";

    Query baseQuery = new MatchAllDocsQuery();

    List<Query> features = Arrays.asList(new TermQuery(new Term("field", userQuery.split(" ")[0])),
            new PhraseQuery("field", userQuery.split(" ")), new PhraseQuery(1, "field", userQuery.split(" ")));
    checkModelWithFeatures(toPrebuildFeatureWithNoName(features), new int[] { 1 });
}

From source file:com.o19s.es.ltr.query.LtrQueryTests.java

License:Apache License

public void testExplainWithNames() throws IOException {
    //     public LambdaMART(List<RankList> samples, int[] features, MetricScorer scorer) {
    String userQuery = "brown cow";
    List<PrebuiltFeature> features = Arrays.asList(
            new PrebuiltFeature("funky_term_q", new TermQuery(new Term("field", userQuery.split(" ")[0]))),
            new PrebuiltFeature("funky_phrase_q", new PhraseQuery("field", userQuery.split(" "))));
    checkModelWithFeatures(features, null);
}

From source file:org.elasticsearch.index.search.ESToParentBlockJoinQueryTests.java

License:Apache License

public void testRewrite() throws IOException {
    Query q = new ESToParentBlockJoinQuery(new PhraseQuery("body", "term"), // rewrites to a TermQuery
            new QueryBitSetProducer(new TermQuery(new Term("is", "parent"))), ScoreMode.Avg, "nested");
    Query expected = new ESToParentBlockJoinQuery(new TermQuery(new Term("body", "term")),
            new QueryBitSetProducer(new TermQuery(new Term("is", "parent"))), ScoreMode.Avg, "nested");
    Query rewritten = q.rewrite(new MultiReader());
    assertEquals(expected, rewritten);/*ww w  . j  ava 2  s.c  o m*/
}

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

License:Apache License

public void testExtractQueryMetadata_notVerified() {
    PhraseQuery phraseQuery = new PhraseQuery("field", "term");

    ParseContext.Document document = new ParseContext.Document();
    extractQueryTerms(phraseQuery, document, QUERY_TERMS_FIELD, EXTRACTION_RESULT_FIELD,
            QUERY_TERMS_FIELD_TYPE);/*  w  w w.  j  av a2 s . co m*/
    assertThat(document.getFields().size(), equalTo(2));
    assertThat(document.getFields().get(0).name(), equalTo(QUERY_TERMS_FIELD));
    assertThat(document.getFields().get(0).binaryValue().utf8ToString(), equalTo("field\u0000term"));
    assertThat(document.getField(EXTRACTION_RESULT_FIELD).stringValue(), equalTo(EXTRACTION_PARTIAL));
}

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

License:Apache License

public void testExtractQueryMetadata_disjunctionMaxQuery() {
    TermQuery termQuery1 = new TermQuery(new Term("_field", "_term1"));
    TermQuery termQuery2 = new TermQuery(new Term("_field", "_term2"));
    TermQuery termQuery3 = new TermQuery(new Term("_field", "_term3"));
    TermQuery termQuery4 = new TermQuery(new Term("_field", "_term4"));
    DisjunctionMaxQuery disjunctionMaxQuery = new DisjunctionMaxQuery(
            Arrays.asList(termQuery1, termQuery2, termQuery3, termQuery4), 0.1f);

    Result result = extractQueryTerms(disjunctionMaxQuery);
    assertThat(result.verified, is(true));
    List<Term> terms = new ArrayList<>(result.terms);
    Collections.sort(terms);/*  w  w w  .  j a v  a  2 s .c  om*/
    assertThat(terms.size(), equalTo(4));
    assertThat(terms.get(0).field(), equalTo(termQuery1.getTerm().field()));
    assertThat(terms.get(0).bytes(), equalTo(termQuery1.getTerm().bytes()));
    assertThat(terms.get(1).field(), equalTo(termQuery2.getTerm().field()));
    assertThat(terms.get(1).bytes(), equalTo(termQuery2.getTerm().bytes()));
    assertThat(terms.get(2).field(), equalTo(termQuery3.getTerm().field()));
    assertThat(terms.get(2).bytes(), equalTo(termQuery3.getTerm().bytes()));
    assertThat(terms.get(3).field(), equalTo(termQuery4.getTerm().field()));
    assertThat(terms.get(3).bytes(), equalTo(termQuery4.getTerm().bytes()));

    disjunctionMaxQuery = new DisjunctionMaxQuery(
            Arrays.asList(termQuery1, termQuery2, termQuery3, new PhraseQuery("_field", "_term4")), 0.1f);

    result = extractQueryTerms(disjunctionMaxQuery);
    assertThat(result.verified, is(false));
    terms = new ArrayList<>(result.terms);
    Collections.sort(terms);
    assertThat(terms.size(), equalTo(4));
    assertThat(terms.get(0).field(), equalTo(termQuery1.getTerm().field()));
    assertThat(terms.get(0).bytes(), equalTo(termQuery1.getTerm().bytes()));
    assertThat(terms.get(1).field(), equalTo(termQuery2.getTerm().field()));
    assertThat(terms.get(1).bytes(), equalTo(termQuery2.getTerm().bytes()));
    assertThat(terms.get(2).field(), equalTo(termQuery3.getTerm().field()));
    assertThat(terms.get(2).bytes(), equalTo(termQuery3.getTerm().bytes()));
    assertThat(terms.get(3).field(), equalTo(termQuery4.getTerm().field()));
    assertThat(terms.get(3).bytes(), equalTo(termQuery4.getTerm().bytes()));
}

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

License:Apache License

public void testExtractTermsAndRanges_partial() throws Exception {
    addQueryMapping();//from   ww  w  . j a v  a2 s.  c o m
    PhraseQuery phraseQuery = new PhraseQuery("field", "term");
    DocumentMapper documentMapper = mapperService.documentMapper(typeName);
    PercolatorFieldMapper fieldMapper = (PercolatorFieldMapper) documentMapper.mappers().getMapper(fieldName);
    ParseContext.InternalParseContext parseContext = new ParseContext.InternalParseContext(Settings.EMPTY,
            mapperService.documentMapperParser(), documentMapper, null, null);
    fieldMapper.processQuery(phraseQuery, parseContext);
    ParseContext.Document document = parseContext.doc();

    PercolatorFieldMapper.FieldType fieldType = (PercolatorFieldMapper.FieldType) fieldMapper.fieldType();
    assertThat(document.getFields().size(), equalTo(2));
    assertThat(document.getFields().get(0).binaryValue().utf8ToString(), equalTo("field\u0000term"));
    assertThat(document.getField(fieldType.extractionResultField.name()).stringValue(),
            equalTo(EXTRACTION_PARTIAL));
}

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

License:Apache License

public void testExtractQueryMetadata_disjunctionMaxQuery() {
    TermQuery termQuery1 = new TermQuery(new Term("_field", "_term1"));
    TermQuery termQuery2 = new TermQuery(new Term("_field", "_term2"));
    TermQuery termQuery3 = new TermQuery(new Term("_field", "_term3"));
    TermQuery termQuery4 = new TermQuery(new Term("_field", "_term4"));
    DisjunctionMaxQuery disjunctionMaxQuery = new DisjunctionMaxQuery(
            Arrays.asList(termQuery1, termQuery2, termQuery3, termQuery4), 0.1f);

    Result result = analyze(disjunctionMaxQuery);
    assertThat(result.verified, is(true));
    List<Term> terms = new ArrayList<>(result.terms);
    Collections.sort(terms);//from w  ww.j av  a  2 s.co m
    assertThat(terms.size(), equalTo(4));
    assertThat(terms.get(0).field(), equalTo(termQuery1.getTerm().field()));
    assertThat(terms.get(0).bytes(), equalTo(termQuery1.getTerm().bytes()));
    assertThat(terms.get(1).field(), equalTo(termQuery2.getTerm().field()));
    assertThat(terms.get(1).bytes(), equalTo(termQuery2.getTerm().bytes()));
    assertThat(terms.get(2).field(), equalTo(termQuery3.getTerm().field()));
    assertThat(terms.get(2).bytes(), equalTo(termQuery3.getTerm().bytes()));
    assertThat(terms.get(3).field(), equalTo(termQuery4.getTerm().field()));
    assertThat(terms.get(3).bytes(), equalTo(termQuery4.getTerm().bytes()));

    disjunctionMaxQuery = new DisjunctionMaxQuery(
            Arrays.asList(termQuery1, termQuery2, termQuery3, new PhraseQuery("_field", "_term4")), 0.1f);

    result = analyze(disjunctionMaxQuery);
    assertThat(result.verified, is(false));
    terms = new ArrayList<>(result.terms);
    Collections.sort(terms);
    assertThat(terms.size(), equalTo(4));
    assertThat(terms.get(0).field(), equalTo(termQuery1.getTerm().field()));
    assertThat(terms.get(0).bytes(), equalTo(termQuery1.getTerm().bytes()));
    assertThat(terms.get(1).field(), equalTo(termQuery2.getTerm().field()));
    assertThat(terms.get(1).bytes(), equalTo(termQuery2.getTerm().bytes()));
    assertThat(terms.get(2).field(), equalTo(termQuery3.getTerm().field()));
    assertThat(terms.get(2).bytes(), equalTo(termQuery3.getTerm().bytes()));
    assertThat(terms.get(3).field(), equalTo(termQuery4.getTerm().field()));
    assertThat(terms.get(3).bytes(), equalTo(termQuery4.getTerm().bytes()));
}