Example usage for org.apache.lucene.index PrefixCodedTerms iterator

List of usage examples for org.apache.lucene.index PrefixCodedTerms iterator

Introduction

In this page you can find the example usage for org.apache.lucene.index PrefixCodedTerms iterator.

Prototype

public TermIterator iterator() 

Source Link

Document

Return an iterator over the terms stored in this PrefixCodedTerms .

Usage

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

License:Apache License

public void testCreateQueryMetadataQuery() throws Exception {
    MemoryIndex memoryIndex = new MemoryIndex(false);
    memoryIndex.addField("field1", "the quick brown fox jumps over the lazy dog", new WhitespaceAnalyzer());
    memoryIndex.addField("field2", "some more text", new WhitespaceAnalyzer());
    memoryIndex.addField("_field3", "unhide me", new WhitespaceAnalyzer());
    memoryIndex.addField("field4", "123", new WhitespaceAnalyzer());

    IndexReader indexReader = memoryIndex.createSearcher().getIndexReader();
    TermsQuery query = (TermsQuery) createQueryTermsQuery(indexReader, QUERY_TERMS_FIELD,
            new Term(EXTRACTION_RESULT_FIELD, EXTRACTION_FAILED));

    PrefixCodedTerms terms = query.getTermData();
    assertThat(terms.size(), equalTo(15L));
    PrefixCodedTerms.TermIterator termIterator = terms.iterator();
    assertTermIterator(termIterator, "_field3\u0000me", QUERY_TERMS_FIELD);
    assertTermIterator(termIterator, "_field3\u0000unhide", QUERY_TERMS_FIELD);
    assertTermIterator(termIterator, "field1\u0000brown", QUERY_TERMS_FIELD);
    assertTermIterator(termIterator, "field1\u0000dog", QUERY_TERMS_FIELD);
    assertTermIterator(termIterator, "field1\u0000fox", QUERY_TERMS_FIELD);
    assertTermIterator(termIterator, "field1\u0000jumps", QUERY_TERMS_FIELD);
    assertTermIterator(termIterator, "field1\u0000lazy", QUERY_TERMS_FIELD);
    assertTermIterator(termIterator, "field1\u0000over", QUERY_TERMS_FIELD);
    assertTermIterator(termIterator, "field1\u0000quick", QUERY_TERMS_FIELD);
    assertTermIterator(termIterator, "field1\u0000the", QUERY_TERMS_FIELD);
    assertTermIterator(termIterator, "field2\u0000more", QUERY_TERMS_FIELD);
    assertTermIterator(termIterator, "field2\u0000some", QUERY_TERMS_FIELD);
    assertTermIterator(termIterator, "field2\u0000text", QUERY_TERMS_FIELD);
    assertTermIterator(termIterator, "field4\u0000123", QUERY_TERMS_FIELD);
    assertTermIterator(termIterator, EXTRACTION_FAILED, EXTRACTION_RESULT_FIELD);
}

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

License:Apache License

public void testCreateCandidateQuery() throws Exception {
    addQueryMapping();/*from  w w  w. j a  v  a  2 s  . c  om*/

    MemoryIndex memoryIndex = new MemoryIndex(false);
    memoryIndex.addField("field1", "the quick brown fox jumps over the lazy dog", new WhitespaceAnalyzer());
    memoryIndex.addField("field2", "some more text", new WhitespaceAnalyzer());
    memoryIndex.addField("_field3", "unhide me", new WhitespaceAnalyzer());
    memoryIndex.addField("field4", "123", new WhitespaceAnalyzer());
    memoryIndex.addField(new LongPoint("number_field", 10L), new WhitespaceAnalyzer());

    IndexReader indexReader = memoryIndex.createSearcher().getIndexReader();

    TermsQuery termsQuery = (TermsQuery) fieldType.createCandidateQuery(indexReader);

    PrefixCodedTerms terms = termsQuery.getTermData();
    assertThat(terms.size(), equalTo(15L));
    PrefixCodedTerms.TermIterator termIterator = terms.iterator();
    assertTermIterator(termIterator, "_field3\u0000me", fieldType.queryTermsField.name());
    assertTermIterator(termIterator, "_field3\u0000unhide", fieldType.queryTermsField.name());
    assertTermIterator(termIterator, "field1\u0000brown", fieldType.queryTermsField.name());
    assertTermIterator(termIterator, "field1\u0000dog", fieldType.queryTermsField.name());
    assertTermIterator(termIterator, "field1\u0000fox", fieldType.queryTermsField.name());
    assertTermIterator(termIterator, "field1\u0000jumps", fieldType.queryTermsField.name());
    assertTermIterator(termIterator, "field1\u0000lazy", fieldType.queryTermsField.name());
    assertTermIterator(termIterator, "field1\u0000over", fieldType.queryTermsField.name());
    assertTermIterator(termIterator, "field1\u0000quick", fieldType.queryTermsField.name());
    assertTermIterator(termIterator, "field1\u0000the", fieldType.queryTermsField.name());
    assertTermIterator(termIterator, "field2\u0000more", fieldType.queryTermsField.name());
    assertTermIterator(termIterator, "field2\u0000some", fieldType.queryTermsField.name());
    assertTermIterator(termIterator, "field2\u0000text", fieldType.queryTermsField.name());
    assertTermIterator(termIterator, "field4\u0000123", fieldType.queryTermsField.name());
    assertTermIterator(termIterator, EXTRACTION_FAILED, fieldType.extractionResultField.name());
}

From source file:uk.co.flax.luwak.util.SpanRewriter.java

License:Apache License

protected Query rewriteTermsQuery(TermsQuery query) {

    Map<String, List<SpanTermQuery>> spanQueries = new HashMap<>();

    try {//w  ww. j  a v  a 2 s.  c om
        Field termsField = TermsQuery.class.getDeclaredField("termData");
        termsField.setAccessible(true);
        PrefixCodedTerms terms = (PrefixCodedTerms) termsField.get(query);
        PrefixCodedTerms.TermIterator it = terms.iterator();
        for (int i = 0; i < terms.size(); i++) {
            BytesRef term = BytesRef.deepCopyOf(it.next());
            if (spanQueries.containsKey(it.field()) == false) {
                spanQueries.put(it.field(), new ArrayList<SpanTermQuery>());
            }
            spanQueries.get(it.field()).add(new SpanTermQuery(new Term(it.field(), term)));
        }
        BooleanQuery.Builder builder = new BooleanQuery.Builder();
        for (Map.Entry<String, List<SpanTermQuery>> entry : spanQueries.entrySet()) {
            List<SpanTermQuery> termQueries = entry.getValue();
            builder.add(new SpanOrQuery(termQueries.toArray(new SpanTermQuery[termQueries.size()])),
                    BooleanClause.Occur.SHOULD);
        }
        return builder.build();
    } catch (Exception e) {
        throw new IllegalStateException(e);
    }

}