@Override protected Query doToQuery(QueryShardContext context) { if (values.isEmpty()) { return Queries.newMatchNoDocsQuery("No terms supplied for \"" + getName() + "\" query."); } // Fail before we attempt to create the term queries: if (values.size() > BooleanQuery.getMaxClauseCount()) { throw new BooleanQuery.TooManyClauses(); } List<Query> queries = createTermQueries(context); LongValuesSource longValuesSource = createValuesSource(context); return new CoveringQuery(queries, longValuesSource); }
@Override protected Query doToQuery(QueryShardContext context) { if (values.isEmpty()) { return Queries.newMatchNoDocsQuery("No terms supplied for \"" + getName() + "\" query."); } // Fail before we attempt to create the term queries: if (values.size() > BooleanQuery.getMaxClauseCount()) { throw new BooleanQuery.TooManyClauses(); } List<Query> queries = createTermQueries(context); LongValuesSource longValuesSource = createValuesSource(context); return new CoveringQuery(queries, longValuesSource); }
@Override protected Query doToQuery(QueryShardContext context) { if (values.isEmpty()) { return Queries.newMatchNoDocsQuery("No terms supplied for \"" + getName() + "\" query."); } // Fail before we attempt to create the term queries: if (values.size() > BooleanQuery.getMaxClauseCount()) { throw new BooleanQuery.TooManyClauses(); } List<Query> queries = createTermQueries(context); LongValuesSource longValuesSource = createValuesSource(context); return new CoveringQuery(queries, longValuesSource); }
@Override public Query rewrite(IndexReader reader) throws IOException { Multiset<Query> rewritten = new Multiset<>(); boolean actuallyRewritten = false; for (Query query : queries) { Query r = query.rewrite(reader); rewritten.add(r); actuallyRewritten |= query != r; } if (actuallyRewritten) { return new CoveringQuery(rewritten, minimumNumberMatch); } return super.rewrite(reader); }
subQueries.add(new TermQuery(new Term(queryTermsField.name(), extractedTerm))); candidateQuery.add(new CoveringQuery(subQueries, valuesSource), BooleanClause.Occur.SHOULD); } else { candidateQuery.add(new TermInSetQuery(queryTermsField.name(), extractedTerms), BooleanClause.Occur.SHOULD);
subQueries.add(new TermQuery(new Term(queryTermsField.name(), extractedTerm))); candidateQuery.add(new CoveringQuery(subQueries, valuesSource), BooleanClause.Occur.SHOULD); } else { candidateQuery.add(new TermInSetQuery(queryTermsField.name(), extractedTerms), BooleanClause.Occur.SHOULD);