private void getBooleans(BooleanQuery query) { for (BooleanClause clause : query) { if (!clause.isProhibited()) { getTerms(clause.getQuery()); } } }
@Override public void extractTerms(Set<Term> terms) { int i = 0; for (BooleanClause clause : query) { if (clause.isScoring() || (needsScores == false && clause.isProhibited() == false)) { weights.get(i).extractTerms(terms); } i++; } }
private void getBooleans(BooleanQuery query) { for (BooleanClause clause : query) { if (!clause.isProhibited()) { getTerms(clause.getQuery()); } } }
BooleanClause bc = cIt.next(); Matches m = w.matches(context, doc); if (bc.isProhibited()) { if (m != null) { return null;
subs.add(Explanation.match(0f, "match on required clause, product of:", Explanation.match(0f, Occur.FILTER + " clause"), e)); } else if (c.isProhibited()) { subs.add(Explanation.noMatch("match on prohibited clause (" + c.getQuery().toString() + ")", e)); fail = true; if (!c.isProhibited()) { matchCount++;
for (Weight w : weights) { BooleanClause c = cIter.next(); if (c.isProhibited()) { Scorer scorer = w.scorer(context); if (scorer != null) {
private static boolean isNegativeQuery(Query q) { if (!(q instanceof BooleanQuery)) { return false; } List<BooleanClause> clauses = ((BooleanQuery) q).clauses(); if (clauses.isEmpty()) { return false; } for (BooleanClause clause : clauses) { if (!clause.isProhibited()) return false; } return true; }
private QueryNode internalParsePositive(List<BooleanClause> list, final String originalStr) throws ParseException { Preconditions.checkArgument(list.size() > 0, "too few terms to build a boolean query"); QueryNode firstQuery = internalParse(list.get(0).getQuery(), null); if (1 == list.size()) { return firstQuery; } if (list.get(1).isRequired()) { return new AndQuery(firstQuery, internalParseBooleanQuery(list.subList(1,list.size()), null)); } else if (list.get(1).isProhibited()) { return new DifferenceQuery(firstQuery, internalParseBooleanQuery(list.subList(1,list.size()), null)); } else { return new OrQuery(firstQuery, internalParseBooleanQuery(list.subList(1,list.size()), null)); } }
private QueryNode internalParseBooleanQuery(List<BooleanClause> list, final String originalStr) throws ParseException { Preconditions.checkArgument(list.size() > 0, "too few terms to build a boolean query"); List<BooleanClause> positiveClauses = new ArrayList<BooleanClause>(); List<BooleanClause> negativeClauses = new ArrayList<BooleanClause>(); for (BooleanClause clause : list) { if (clause.isProhibited()) { negativeClauses.add(clause); } else { positiveClauses.add(clause); } } if (positiveClauses.isEmpty()) { throw new ParseException("No positive clauses."); } QueryNode retVal = internalParsePositive(positiveClauses, originalStr); for (BooleanClause clause : negativeClauses) { retVal = new DifferenceQuery(retVal, internalParse(clause.getQuery(), null)); } return retVal; }
private static boolean isNegativeQuery(Query q) { if (!(q instanceof BooleanQuery)) { return false; } List<BooleanClause> clauses = ((BooleanQuery) q).clauses(); if (clauses.isEmpty()) { return false; } for (BooleanClause clause : clauses) { if (!clause.isProhibited()) return false; } return true; }
/** return true if this query has no positive components */ static boolean isNegative(Query q) { if (!(q instanceof BooleanQuery)) return false; BooleanQuery bq = (BooleanQuery)q; List<BooleanClause> clauses = bq.clauses(); if (clauses.size()==0) return false; for (BooleanClause clause : clauses) { if (!clause.isProhibited()) return false; } return true; }
public static boolean isNegativeQuery(Query q) { if (!(q instanceof BooleanQuery)) { return false; } List<BooleanClause> clauses = ((BooleanQuery) q).clauses(); if (clauses.isEmpty()) { return false; } for (BooleanClause clause : clauses) { if (!clause.isProhibited()) return false; } return true; }
private static boolean isNegativeQuery(Query q) { if (!(q instanceof BooleanQuery)) { return false; } List<BooleanClause> clauses = ((BooleanQuery) q).clauses(); if (clauses.isEmpty()) { return false; } for (BooleanClause clause : clauses) { if (!clause.isProhibited()) return false; } return true; }
private static boolean isNegativeQuery(Query q) { if (!(q instanceof BooleanQuery)) { return false; } List<BooleanClause> clauses = ((BooleanQuery) q).clauses(); if (clauses.isEmpty()) { return false; } for (BooleanClause clause : clauses) { if (!clause.isProhibited()) return false; } return true; }
/** From org.apache.solr.search.QueryUtils **/ public static boolean isNegative(Query q) { if (!(q instanceof BooleanQuery)) return false; BooleanQuery bq = (BooleanQuery) q; Collection<BooleanClause> clauses = bq.clauses(); if (clauses.size() == 0) return false; for (BooleanClause clause : clauses) { if (!clause.isProhibited()) return false; } return true; }
@Override public void extractTerms(Set<Term> terms) { int i = 0; for (BooleanClause clause : query) { if (clause.isScoring() || (needsScores == false && clause.isProhibited() == false)) { weights.get(i).extractTerms(terms); } i++; } }
@Override public void extractTerms(Set<Term> terms) { int i = 0; for (BooleanClause clause : query) { if (clause.isScoring() || (needsScores == false && clause.isProhibited() == false)) { weights.get(i).extractTerms(terms); } i++; } }
@Override public void extractTerms(Set<Term> terms) { int i = 0; for (BooleanClause clause : query) { if (clause.isScoring() || (needsScores == false && clause.isProhibited() == false)) { weights.get(i).extractTerms(terms); } i++; } }
public float sumOfSquaredWeights() throws IOException { float sum = 0.0f; for (int i = 0 ; i < weights.size(); i++) { BooleanClause c = (BooleanClause)clauses.get(i); Weight w = (Weight)weights.get(i); // call sumOfSquaredWeights for all clauses in case of side effects float s = w.sumOfSquaredWeights(); // sum sub weights if (!c.isProhibited()) // only add to sum for non-prohibited clauses sum += s; } sum *= getBoost() * getBoost(); // boost each sub-weight return sum ; }
public float sumOfSquaredWeights() throws IOException { float sum = 0.0f; for (int i = 0 ; i < weights.size(); i++) { BooleanClause c = (BooleanClause)clauses.get(i); Weight w = (Weight)weights.get(i); // call sumOfSquaredWeights for all clauses in case of side effects float s = w.sumOfSquaredWeights(); // sum sub weights if (!c.isProhibited()) // only add to sum for non-prohibited clauses sum += s; } sum *= getBoost() * getBoost(); // boost each sub-weight return sum ; }