List of usage examples for org.apache.lucene.search PrefixQuery getPrefix
public Term getPrefix()
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); }