List of usage examples for org.apache.lucene.search BooleanQuery BooleanQuery
BooleanQuery
From source file:com.netspective.sparx.navigate.fts.SearchHitsTemplateRenderer.java
License:Open Source License
protected Query getAllWordsQuery(final NavigationContext nc, final String[] defaultFieldNames, final String allWordsParamValue) { final BooleanQuery allWordsQuery = new BooleanQuery(); for (int i = 0; i < defaultFieldNames.length; i++) { final BooleanQuery booleanQuery = new BooleanQuery(); final String[] words = TextUtils.getInstance().split(allWordsParamValue, " ", true); for (int j = 0; j < words.length; j++) booleanQuery.add(new TermQuery(new Term(defaultFieldNames[i], words[j])), true, false); allWordsQuery.add(booleanQuery, false, false); }/*from w w w .j av a2 s .com*/ return allWordsQuery; }
From source file:com.o19s.solr.swan.nodes.SwanNode.java
License:Apache License
public Query getQuery(String[] fields) { BooleanQuery query = new BooleanQuery(); for (int x = 0; x < fields.length; x++) { query.add(getQuery(fields[x]), BooleanClause.Occur.SHOULD); }/*from w w w . j a va2 s .c o m*/ return query; }
From source file:com.o19s.solr.swan.nodes.SwanNotNode.java
License:Apache License
@Override public Query getQuery(String field) { BooleanQuery query = new BooleanQuery(); query.add(_left.getQuery(field), BooleanClause.Occur.MUST); query.add(_right.getQuery(field), BooleanClause.Occur.MUST_NOT); return query; }
From source file:com.o19s.solr.swan.nodes.SwanNotNode.java
License:Apache License
@Override public Query getQuery(String[] fields) { BooleanQuery query = new BooleanQuery(); query.add(_left.getQuery(), BooleanClause.Occur.MUST); query.add(_right.getQuery(), BooleanClause.Occur.MUST_NOT); return query; }
From source file:com.o19s.solr.swan.nodes.SwanOperatorNode.java
License:Apache License
@Override public Query getQuery(String field) { BooleanQuery query = new BooleanQuery(); for (SwanNode n : _nodes) { Query q = n.getQuery(field); query.add(q, getClause());/* w w w.j a v a2 s. c o m*/ } return query; }
From source file:com.o19s.solr.swan.nodes.SwanOperatorNode.java
License:Apache License
@Override public Query getQuery(String[] fields) { BooleanQuery query = new BooleanQuery(); for (SwanNode n : _nodes) { query.add(n.getQuery(), getClause()); }/* w w w. java 2s. c o m*/ return query; }
From source file:com.o19s.solr.swan.nodes.SwanProxNode.java
License:Apache License
private Query nestedConditionalQuery(BooleanClause.Occur innerOccur, BooleanClause.Occur outerOccur, List<SwanNode> left, List<SwanNode> right, String lfDef, String rfDef, boolean reverse) { BooleanQuery query = new BooleanQuery(); BooleanQuery innerQuery;//from w ww . j a v a 2 s . c om for (SwanNode l : left) { String lf = l.getField() != null ? l.getField() : lfDef; innerQuery = new BooleanQuery(); for (SwanNode r : right) { String f = r.getField() != null ? r.getField() : rfDef; if (f == null) f = lf; else if (lf != null && !lf.equals(f)) continue; if (reverse) addSpanQuery(innerQuery, innerOccur, r, l, f); else addSpanQuery(innerQuery, innerOccur, l, r, f); } if (innerQuery.getClauses().length == 0) throw new IllegalArgumentException("Clauses must have same field."); query.add(innerQuery, outerOccur); } return query; }
From source file:com.o19s.solr.swan.nodes.SwanProxNode.java
License:Apache License
private Query conditionalQuery(BooleanClause.Occur occur, List<SwanNode> left, List<SwanNode> right, String lfDef, String rfDef) { BooleanQuery query = new BooleanQuery(); for (SwanNode l : left) { String lf = l.getField() != null ? l.getField() : lfDef; for (SwanNode r : right) { String f = r.getField() != null ? r.getField() : rfDef; if (f == null) f = lf;/*from w ww. j a v a 2s . co m*/ else if (lf != null && !lf.equals(f)) continue; addSpanQuery(query, occur, l, r, f); } } return query; }
From source file:com.o19s.solr.swan.nodes.SwanProxNode.java
License:Apache License
private Query xOrConditionalQuery(SwanNode left, SwanNode right, boolean reverse) { String lf_def = left.getField(); String rf_def = right.getField(); BooleanClause.Occur occur = reverse ? ((SwanOperatorNode) right).getClause() : ((SwanOperatorNode) left).getClause(); List<SwanNode> left_nodes = ((SwanOperatorNode) left).getNodes(); List<SwanNode> right_nodes = ((SwanOperatorNode) right).getNodes(); List<Query> nodes = new ArrayList<Query>(); for (SwanNode left_node : left_nodes) { BooleanQuery outer = new BooleanQuery(); String lf = checkSet(left_node.getField(), lf_def); for (SwanNode right_node : right_nodes) { String rf = checkSet(right_node.getField(), rf_def); String f = checkSet(lf, rf); if (reverse) addSpanQuery(outer, occur, right_node, left_node, f); else//from w w w .j a v a 2 s . com addSpanQuery(outer, occur, left_node, right_node, f); } nodes.add(outer); } return xOrNodes(nodes); }
From source file:com.o19s.solr.swan.nodes.SwanProxNode.java
License:Apache License
private Query dualXOrConditionalQuery() { String lf_def = _left.getField(); String rf_def = _right.getField(); List<Query> nodes = new ArrayList<Query>(); for (SwanNode left : ((SwanOperatorNode) _left).getNodes()) { String lf = checkSet(left.getField(), lf_def); for (SwanNode right : ((SwanOperatorNode) _right).getNodes()) { String rf = checkSet(right.getField(), rf_def); String f = checkSet(lf, rf); // TODO: This I believe can be refactored to something cleaner. if (f == null) { BooleanQuery inner = new BooleanQuery(); for (String _f : defaultFields) inner.add(getSpanQuery(left, right, _f), BooleanClause.Occur.SHOULD); nodes.add(inner);/*from w w w . j a v a 2s.c om*/ } else { nodes.add(getSpanQuery(left, right, f)); } } } return xOrNodes(nodes); }