Example usage for org.apache.lucene.search PrefixQuery getPrefix

List of usage examples for org.apache.lucene.search PrefixQuery getPrefix

Introduction

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

Prototype

public Term getPrefix() 

Source Link

Document

Returns the prefix of this query.

Usage

From source file:bbejeck.nosql.lucene.LuceneQueryParsingTest.java

License:Apache License

@Test
public void test_parse_like_prefix_query() {
    String query = "select foo from '/path/index/' where name like 'Bet*'";
    BooleanQuery bq = parseQuery(query);
    BooleanClause[] clauses = bq.getClauses();
    PrefixQuery prefixQuery = (PrefixQuery) clauses[0].getQuery();
    assertThat(prefixQuery.getField(), is("name"));
    assertThat(prefixQuery.getPrefix().text(), is("bet*"));
}

From source file:com.github.rnewson.couchdb.lucene.QueryPlan.java

License:Apache License

private static void planPrefixQuery(final StringBuilder builder, final PrefixQuery query) {
    builder.append(query.getPrefix());
}

From source file:com.liferay.document.library.repository.search.internal.LuceneRepositorySearchQueryTermBuilder.java

License:Open Source License

protected void translateQuery(BooleanQuery booleanQuery, SearchContext searchContext,
        org.apache.lucene.search.Query query, org.apache.lucene.search.BooleanClause.Occur occur)
        throws Exception {

    BooleanClauseOccur booleanClauseOccur = getBooleanClauseOccur(occur);

    if (query instanceof org.apache.lucene.search.TermQuery) {
        org.apache.lucene.search.TermQuery luceneTermQuery = (org.apache.lucene.search.TermQuery) query;

        Term term = luceneTermQuery.getTerm();

        String termValue = term.text();

        TermQuery termQuery = new TermQueryImpl(term.field(), termValue);

        booleanQuery.add(termQuery, getBooleanClauseOccur(occur));
    } else if (query instanceof org.apache.lucene.search.BooleanQuery) {
        org.apache.lucene.search.BooleanQuery curBooleanQuery = (org.apache.lucene.search.BooleanQuery) query;

        BooleanQuery conjunctionQuery = new BooleanQueryImpl();

        BooleanQuery disjunctionQuery = new BooleanQueryImpl();

        for (org.apache.lucene.search.BooleanClause booleanClause : curBooleanQuery.getClauses()) {

            BooleanClauseOccur curBooleanClauseOccur = getBooleanClauseOccur(booleanClause.getOccur());

            BooleanQuery subbooleanQuery = null;

            if (curBooleanClauseOccur.equals(BooleanClauseOccur.SHOULD)) {
                subbooleanQuery = disjunctionQuery;
            } else {
                subbooleanQuery = conjunctionQuery;
            }//from ww  w  .j  av a  2  s.c o  m

            translateQuery(subbooleanQuery, searchContext, booleanClause.getQuery(), booleanClause.getOccur());
        }

        if (conjunctionQuery.hasClauses()) {
            booleanQuery.add(conjunctionQuery, BooleanClauseOccur.MUST);
        }

        if (disjunctionQuery.hasClauses()) {
            booleanQuery.add(disjunctionQuery, BooleanClauseOccur.SHOULD);
        }
    } else if (query instanceof org.apache.lucene.search.FuzzyQuery) {
        org.apache.lucene.search.FuzzyQuery fuzzyQuery = (org.apache.lucene.search.FuzzyQuery) query;

        Term term = fuzzyQuery.getTerm();

        String termValue = term.text().concat(StringPool.STAR);

        WildcardQuery wildcardQuery = new WildcardQueryImpl(term.field(), termValue);

        booleanQuery.add(wildcardQuery, booleanClauseOccur);
    } else if (query instanceof org.apache.lucene.search.PhraseQuery) {
        org.apache.lucene.search.PhraseQuery phraseQuery = (org.apache.lucene.search.PhraseQuery) query;

        Term[] terms = phraseQuery.getTerms();

        StringBundler sb = new StringBundler(terms.length * 2);

        for (Term term : terms) {
            sb.append(term.text());
            sb.append(StringPool.SPACE);
        }

        TermQuery termQuery = new TermQueryImpl(terms[0].field(), sb.toString().trim());

        booleanQuery.add(termQuery, booleanClauseOccur);
    } else if (query instanceof org.apache.lucene.search.PrefixQuery) {
        org.apache.lucene.search.PrefixQuery prefixQuery = (org.apache.lucene.search.PrefixQuery) query;

        Term prefixTerm = prefixQuery.getPrefix();

        String termValue = prefixTerm.text().concat(StringPool.STAR);

        WildcardQuery wildcardQuery = new WildcardQueryImpl(prefixTerm.field(), termValue);

        booleanQuery.add(wildcardQuery, booleanClauseOccur);
    } else if (query instanceof org.apache.lucene.search.TermRangeQuery) {
        org.apache.lucene.search.TermRangeQuery termRangeQuery = (org.apache.lucene.search.TermRangeQuery) query;

        booleanQuery.addRangeTerm(termRangeQuery.getField(), termRangeQuery.getLowerTerm().utf8ToString(),
                termRangeQuery.getUpperTerm().utf8ToString());
    } else if (query instanceof org.apache.lucene.search.WildcardQuery) {
        org.apache.lucene.search.WildcardQuery luceneWildcardQuery = (org.apache.lucene.search.WildcardQuery) query;

        Term wildcardTerm = luceneWildcardQuery.getTerm();

        WildcardQuery wildcardQuery = new WildcardQueryImpl(wildcardTerm.field(), wildcardTerm.text());

        booleanQuery.add(wildcardQuery, booleanClauseOccur);
    } else {
        if (_log.isWarnEnabled()) {
            _log.warn("Ignoring unknown query type " + query.getClass() + " with query " + query);
        }
    }
}

From source file:com.liferay.portal.repository.search.RepositorySearchQueryBuilderImpl.java

License:Open Source License

protected void translateQuery(BooleanQuery booleanQuery, SearchContext searchContext,
        org.apache.lucene.search.Query query, org.apache.lucene.search.BooleanClause.Occur occur)
        throws Exception {

    BooleanClauseOccur booleanClauseOccur = getBooleanClauseOccur(occur);

    if (query instanceof org.apache.lucene.search.TermQuery) {
        Set<Term> terms = new HashSet<Term>();

        query.extractTerms(terms);//  w  ww  .  j  ava 2 s  .c o  m

        for (Term term : terms) {
            String termValue = term.text();

            booleanQuery.addTerm(term.field(), termValue, false, getBooleanClauseOccur(occur));
        }
    } else if (query instanceof org.apache.lucene.search.BooleanQuery) {
        org.apache.lucene.search.BooleanQuery curBooleanQuery = (org.apache.lucene.search.BooleanQuery) query;

        BooleanQuery conjunctionQuery = BooleanQueryFactoryUtil.create(searchContext);
        BooleanQuery disjunctionQuery = BooleanQueryFactoryUtil.create(searchContext);

        for (org.apache.lucene.search.BooleanClause booleanClause : curBooleanQuery.getClauses()) {

            BooleanClauseOccur curBooleanClauseOccur = getBooleanClauseOccur(booleanClause.getOccur());

            BooleanQuery subbooleanQuery = null;

            if (curBooleanClauseOccur.equals(BooleanClauseOccur.SHOULD)) {
                subbooleanQuery = disjunctionQuery;
            } else {
                subbooleanQuery = conjunctionQuery;
            }

            translateQuery(subbooleanQuery, searchContext, booleanClause.getQuery(), booleanClause.getOccur());

        }

        if (conjunctionQuery.hasClauses()) {
            booleanQuery.add(conjunctionQuery, BooleanClauseOccur.MUST);
        }

        if (disjunctionQuery.hasClauses()) {
            booleanQuery.add(disjunctionQuery, BooleanClauseOccur.SHOULD);
        }
    } else if (query instanceof org.apache.lucene.search.FuzzyQuery) {
        org.apache.lucene.search.FuzzyQuery fuzzyQuery = (org.apache.lucene.search.FuzzyQuery) query;

        Term term = fuzzyQuery.getTerm();

        String termValue = term.text().concat(StringPool.STAR);

        booleanQuery.addTerm(term.field(), termValue, true, booleanClauseOccur);
    } else if (query instanceof org.apache.lucene.search.PhraseQuery) {
        org.apache.lucene.search.PhraseQuery phraseQuery = (org.apache.lucene.search.PhraseQuery) query;

        Term[] terms = phraseQuery.getTerms();

        StringBundler sb = new StringBundler(terms.length * 2);

        for (Term term : terms) {
            sb.append(term.text());
            sb.append(StringPool.SPACE);
        }

        booleanQuery.addTerm(terms[0].field(), sb.toString().trim(), false, booleanClauseOccur);
    } else if (query instanceof org.apache.lucene.search.PrefixQuery) {
        org.apache.lucene.search.PrefixQuery prefixQuery = (org.apache.lucene.search.PrefixQuery) query;

        Term prefixTerm = prefixQuery.getPrefix();

        String termValue = prefixTerm.text().concat(StringPool.STAR);

        booleanQuery.addTerm(prefixTerm.field(), termValue, true, booleanClauseOccur);
    } else if (query instanceof org.apache.lucene.search.TermRangeQuery) {
        org.apache.lucene.search.TermRangeQuery termRangeQuery = (org.apache.lucene.search.TermRangeQuery) query;

        booleanQuery.addRangeTerm(termRangeQuery.getField(), termRangeQuery.getLowerTerm(),
                termRangeQuery.getUpperTerm());
    } else if (query instanceof org.apache.lucene.search.WildcardQuery) {
        org.apache.lucene.search.WildcardQuery wildcardQuery = (org.apache.lucene.search.WildcardQuery) query;

        Term wildcardTerm = wildcardQuery.getTerm();

        booleanQuery.addTerm(wildcardTerm.field(), wildcardTerm.text(), true, booleanClauseOccur);
    } else {
        if (_log.isWarnEnabled()) {
            _log.warn("Ignoring unknown query type " + query.getClass() + " with query " + query);
        }
    }
}

From source file:com.stratio.cassandra.index.query.PrefixConditionTest.java

License:Apache License

@Test
public void testString() {

    Map<String, ColumnMapper<?>> map = new HashMap<>();
    map.put("name", new ColumnMapperString());
    Schema mappers = new Schema(EnglishAnalyzer.class.getName(), map);

    PrefixCondition prefixCondition = new PrefixCondition(0.5f, "name", "tr");
    Query query = prefixCondition.query(mappers);

    Assert.assertNotNull(query);/*  w w w.  jav  a 2s  .c  om*/
    Assert.assertEquals(PrefixQuery.class, query.getClass());
    PrefixQuery luceneQuery = (PrefixQuery) query;
    Assert.assertEquals("name", luceneQuery.getField());
    Assert.assertEquals("tr", luceneQuery.getPrefix().text());
    Assert.assertEquals(0.5f, query.getBoost(), 0);
}

From source file:com.stratio.cassandra.index.query.PrefixConditionTest.java

License:Apache License

@Test
public void testInetV4() {

    Map<String, ColumnMapper<?>> map = new HashMap<>();
    map.put("name", new ColumnMapperInet());
    Schema mappers = new Schema(EnglishAnalyzer.class.getName(), map);

    PrefixCondition wildcardCondition = new PrefixCondition(0.5f, "name", "192.168.");
    Query query = wildcardCondition.query(mappers);

    Assert.assertNotNull(query);//from w  w  w  .  j a  v  a 2  s  .c  o  m
    Assert.assertEquals(PrefixQuery.class, query.getClass());
    PrefixQuery luceneQuery = (PrefixQuery) query;
    Assert.assertEquals("name", luceneQuery.getField());
    Assert.assertEquals("192.168.", luceneQuery.getPrefix().text());
    Assert.assertEquals(0.5f, query.getBoost(), 0);
}

From source file:com.stratio.cassandra.index.query.PrefixConditionTest.java

License:Apache License

@Test
public void testInetV6() {

    Map<String, ColumnMapper<?>> map = new HashMap<>();
    map.put("name", new ColumnMapperInet());
    Schema mappers = new Schema(EnglishAnalyzer.class.getName(), map);

    PrefixCondition wildcardCondition = new PrefixCondition(0.5f, "name", "2001:db8:2de:0:0:0:0:e");
    Query query = wildcardCondition.query(mappers);

    Assert.assertNotNull(query);/*from   w  w w.jav  a2 s  .c  o  m*/
    Assert.assertEquals(PrefixQuery.class, query.getClass());
    PrefixQuery luceneQuery = (PrefixQuery) query;
    Assert.assertEquals("name", luceneQuery.getField());
    Assert.assertEquals("2001:db8:2de:0:0:0:0:e", luceneQuery.getPrefix().text());
    Assert.assertEquals(0.5f, query.getBoost(), 0);
}

From source file:com.stratio.cassandra.lucene.search.condition.PrefixConditionTest.java

License:Apache License

@Test
public void testString() {

    Schema schema = mockSchema("name", new StringMapper("name", true, true, null));

    PrefixCondition prefixCondition = new PrefixCondition(0.5f, "name", "tr");
    Query query = prefixCondition.query(schema);

    assertNotNull(query);/*from   w  w w  .  j  a  v a  2 s .  c om*/
    assertEquals(PrefixQuery.class, query.getClass());
    PrefixQuery luceneQuery = (PrefixQuery) query;
    assertEquals("name", luceneQuery.getField());
    assertEquals("tr", luceneQuery.getPrefix().text());
    assertEquals(0.5f, query.getBoost(), 0);
}

From source file:com.stratio.cassandra.lucene.search.condition.PrefixConditionTest.java

License:Apache License

@Test
public void testInetV4() {

    Schema schema = mockSchema("name", new InetMapper("name", null, null));

    PrefixCondition wildcardCondition = new PrefixCondition(0.5f, "name", "192.168.");
    Query query = wildcardCondition.query(schema);

    assertNotNull(query);//  w ww  .  ja  v a2  s.co m
    assertEquals(PrefixQuery.class, query.getClass());
    PrefixQuery luceneQuery = (PrefixQuery) query;
    assertEquals("name", luceneQuery.getField());
    assertEquals("192.168.", luceneQuery.getPrefix().text());
    assertEquals(0.5f, query.getBoost(), 0);
}

From source file:com.stratio.cassandra.lucene.search.condition.PrefixConditionTest.java

License:Apache License

@Test
public void testInetV6() {

    Schema schema = mockSchema("name", new InetMapper("name", null, null));

    PrefixCondition wildcardCondition = new PrefixCondition(0.5f, "name", "2001:db8:2de:0:0:0:0:e");
    Query query = wildcardCondition.query(schema);

    assertNotNull(query);//  w w w . j a va  2 s  . c  o m
    assertEquals(PrefixQuery.class, query.getClass());
    PrefixQuery luceneQuery = (PrefixQuery) query;
    assertEquals("name", luceneQuery.getField());
    assertEquals("2001:db8:2de:0:0:0:0:e", luceneQuery.getPrefix().text());
    assertEquals(0.5f, query.getBoost(), 0);
}