List of usage examples for org.apache.lucene.search BooleanQuery BooleanQuery
BooleanQuery
From source file:com.intuit.tank.search.util.SearchUtils.java
License:Open Source License
public static final Query createLuceneQuery(Operator operator, CompositeSearchQuery query) { Query luceneQuery = new MultiSearchParam(query.getOperator(), query.getQuery1().getSearchParams().toArray((new SearchParam[0]))).getLuceneQuery(); Query otherLuceneQuery = new MultiSearchParam(Operator.OR, query.getQuery2().getSearchParams().toArray((new SearchParam[0]))).getLuceneQuery(); BooleanQuery booleanQuery = new BooleanQuery(); booleanQuery.add(luceneQuery, operator.getOccur()); booleanQuery.add(otherLuceneQuery, query.getOperator().getOccur()); return booleanQuery; }
From source file:com.isotrol.impe3.nr.core.LuceneTranslator.java
License:Open Source License
/** Filter criteria map to query. */ private static <K> BooleanQuery map2query(Function<? super K, Query> f, Map<K, FilterType> map) { if (map == null || map.isEmpty()) { return null; }/*from ww w.j av a 2 s .c o m*/ BooleanQuery bq = new BooleanQuery(); for (Entry<K, FilterType> e : map.entrySet()) { bq.add(new BooleanClause(f.apply(e.getKey()), TYPE_MAP.get(e.getValue()))); } return bq; }
From source file:com.isotrol.impe3.nr.core.LuceneTranslator.java
License:Open Source License
private BooleanQuery boolQuery(BooleanClause.Occur occur, Iterable<Query> queries) { if (queries == null) { return null; }/*from ww w .j av a2 s. c o m*/ boolean empty = true; final BooleanQuery bq = new BooleanQuery(); for (Query q : filter(queries, notNull())) { empty = false; final BooleanClause clause = new BooleanClause(q, occur); bq.add(clause); } return empty ? null : bq; }
From source file:com.isotrol.impe3.nr.core.LuceneTranslator.java
License:Open Source License
/** * Translate a node query and a node filter into lucene query * @param query Node query./*from w ww .j a va2s.c o m*/ * @param filter Node filter. * @return A lucene query representing the query and the filter. */ public Query query(NodeQuery query, NodeFilter filter) { Query q = query(query); Query f = query(filter); if (f == null) { return q; } BooleanQuery both = new BooleanQuery(); both.add(new BooleanClause(q, BooleanClause.Occur.MUST)); both.add(new BooleanClause(f, BooleanClause.Occur.MUST)); return both; }
From source file:com.isotrol.impe3.nr.core.LuceneTranslator.java
License:Open Source License
private ImmutableMap<Class<?>, Object> createFunctionsMap() { ImmutableMap.Builder<Class<?>, Object> builder = ImmutableMap.builder(); builder.put(NRTermQuery.class, new Function<NRTermQuery, TermQuery>() { public TermQuery apply(NRTermQuery input) { return new TermQuery(get(input.getTerm())); }//from ww w . j a va 2 s. c o m }); builder.put(NRWildcardQuery.class, new Function<NRWildcardQuery, WildcardQuery>() { public WildcardQuery apply(NRWildcardQuery input) { return new WildcardQuery(get(input.getTerm())); } }); builder.put(NRRangeQuery.class, new Function<NRRangeQuery, Query>() { public Query apply(NRRangeQuery input) { return new TermRangeQuery(input.getFieldName(), input.getLowerVal(), input.getUpperVal(), input.isIncludeLower(), input.isIncludeUpper()); } }); builder.put(NRMatchAllDocsQuery.class, new Function<NRMatchAllDocsQuery, Query>() { public Query apply(NRMatchAllDocsQuery input) { return new MatchAllDocsQuery(); } }); builder.put(NRBooleanQuery.class, new Function<NRBooleanQuery, Query>() { public Query apply(NRBooleanQuery input) { final BooleanQuery query = new BooleanQuery(); for (BooleanClause clause : Iterables.transform(input.getClauses(), new Function<NRBooleanClause, BooleanClause>() { public BooleanClause apply(NRBooleanClause input) { final Query q = query(input.getQuery()); final BooleanClause.Occur occur; switch (input.getOccur()) { case MUST: occur = BooleanClause.Occur.MUST; break; case SHOULD: occur = BooleanClause.Occur.SHOULD; break; case MUST_NOT: occur = BooleanClause.Occur.MUST_NOT; break; default: throw new IllegalStateException(); } return new BooleanClause(q, occur); }; })) { if (clause != null && clause.getQuery() != null && clause.getQuery().toString().length() > 0) { query.add(clause); } } return query; } }); builder.put(NRStringQuery.class, new Function<NRStringQuery, Query>() { public Query apply(NRStringQuery input) { final NRTerm term = input.getTerm(); final QueryParser parser = new PrefixAnalyzedQueryParser(term.getField(), analyzer); try { return parser.parse(term.getText()); } catch (ParseException e) { throw new IllegalArgumentException(e); } } }); return builder.build(); }
From source file:com.isotrol.impe3.nr.core.LucisQuerySupportTest.java
License:Open Source License
@Test public void lucisMultiBooleanQueryTest() { Query query1 = createBooleanQuery(); Query query2 = new TermQuery(new Term("FIELD1", "TEST")); BooleanClause clause1 = new BooleanClause(query1, BooleanClause.Occur.SHOULD); BooleanClause clause2 = new BooleanClause(query2, BooleanClause.Occur.MUST); BooleanQuery query = new BooleanQuery(); query.add(clause1);//from ww w . ja v a2 s . c om query.add(clause2); NodeQuery lquery1 = createLucisBooleanQuery(); NodeQuery lquery2 = NodeQueries.term("FIELD1", "TEST"); NRBooleanQuery lquery = NodeQueries.bool(); lquery.should(lquery1); lquery.must(lquery2); Query test = translator().query(lquery); Assert.assertNotNull(test); Assert.assertEquals(query, test); }
From source file:com.isotrol.impe3.nr.core.LucisQuerySupportTest.java
License:Open Source License
private BooleanQuery createBooleanQuery() { Query query1 = new TermRangeQuery("FIELD_NAME", "090101", "090201", true, true); Query query2 = new TermQuery(new Term("FIELD", "TEST")); Query query3 = new MatchAllDocsQuery(); Query query4 = new WildcardQuery(new Term("FIELD", "TEST*")); BooleanQuery query = new BooleanQuery(); BooleanClause clause1 = new BooleanClause(query1, BooleanClause.Occur.MUST); BooleanClause clause2 = new BooleanClause(query2, BooleanClause.Occur.MUST_NOT); BooleanClause clause3 = new BooleanClause(query3, BooleanClause.Occur.SHOULD); BooleanClause clause4 = new BooleanClause(query4, BooleanClause.Occur.MUST); query.add(clause1);/*ww w .j a v a2 s .c o m*/ query.add(clause2); query.add(clause3); query.add(clause4); return query; }
From source file:com.it.lucene.test.IndexSearch.java
@Test public void booleanQuery() { BooleanQuery query = new BooleanQuery(); // TermQuery/*from w w w . j av a 2 s . co m*/ Query q1 = new TermQuery(new Term("description", "java")); Query q2 = NumericRangeQuery.newFloatRange("price", 50f, 56f, false, true); // 1?MUSTMUST??? // 2?MUSTMUST_NOT????? // 3?MUST_NOTMUST_NOT? // 4?SHOULDMUSTMUSTSHOULD? // 5?SHOUlDMUST_NOTMUSTMUST_NOT // 6?SHOULDSHOULD? query.add(q1, Occur.MUST); query.add(q2, Occur.MUST); System.out.println(query); doSearch(query); }
From source file:com.it.lucene.test.IndexSearch.java
@Test public void testsToString() { BooleanQuery query = new BooleanQuery(); query.add(new FuzzyQuery(new Term("description", "lucene")), Occur.MUST); Query q2 = NumericRangeQuery.newFloatRange("price", 50f, 56f, false, true); query.add(q2, Occur.MUST);/*from w w w. j av a 2 s. c o m*/ System.out.println(query); }
From source file:com.jaeksoft.searchlib.function.expression.RootExpression.java
License:Open Source License
public static void main(String[] argv) { String exp = " 10000 / ( 1 * rord(creationDate) + 10000 ) "; try {// w w w . jav a2 s.c o m System.out.println(getQuery(new BooleanQuery(), exp)); } catch (SyntaxError e) { System.err.println(e.getMessage()); } }