Refine search
BooleanQuery booleanQuery = new BooleanQuery(); TermQuery userQuery = new TermQuery(new Term("user_id", u.getId()+"")); BooleanQuery innerBooleanQuery = new BooleanQuery(); innerBooleanQuery.add(new BooleanClause(name_query, Occur.SHOULD)); innerBooleanQuery.add(new BooleanClause(desc_query, Occur.SHOULD)); booleanQuery.add(new BooleanClause(userQuery , Occur.MUST)); booleanQuery.add(new BooleanClause(innerBooleanQuery, Occur.MUST));
public Query build(Type type) { Preconditions.checkArgument(queries.size() > 0, "Query is empty"); if ( queries.size() == 1 ) { return queries.iterator().next(); } BooleanQuery query = new BooleanQuery(); for ( Query q : queries ) { query.add(q, (type == Type.AND) ? BooleanClause.Occur.MUST : BooleanClause.Occur.SHOULD); } return query; }
private BooleanQuery buildLineageQuery(final Collection<String> flowFileUuids) { // Create a query for all Events related to the FlowFiles of interest. We do this by adding all ID's as // "SHOULD" clauses and then setting the minimum required to 1. final BooleanQuery lineageQuery; if (flowFileUuids == null || flowFileUuids.isEmpty()) { lineageQuery = null; } else { lineageQuery = new BooleanQuery(); for (final String flowFileUuid : flowFileUuids) { lineageQuery.add(new TermQuery(new Term(SearchableFields.FlowFileUUID.getSearchableFieldName(), flowFileUuid)), Occur.SHOULD); } lineageQuery.setMinimumNumberShouldMatch(1); } return lineageQuery; }
protected Query stringContains(Operation<?> operation, QueryMetadata metadata, boolean ignoreCase) { verifyArguments(operation); Path<?> path = getPath(operation.getArg(0)); String field = toField(path); String[] terms = convertEscaped(path, operation.getArg(1), metadata); if (terms.length > 1) { BooleanQuery bq = new BooleanQuery(); for (String s : terms) { bq.add(new WildcardQuery(new Term(field, "*" + s + "*")), Occur.MUST); } return bq; } return new WildcardQuery(new Term(field, "*" + terms[0] + "*")); }
flowFileIdQuery = null; } else { flowFileIdQuery = new BooleanQuery(); for (final String flowFileUuid : flowFileUuids) { flowFileIdQuery.add(new TermQuery(new Term(SearchableFields.FlowFileUUID.getSearchableFieldName(), flowFileUuid)), Occur.SHOULD);
protected Query like(Operation<?> operation, QueryMetadata metadata) { verifyArguments(operation); Path<?> path = getPath(operation.getArg(0)); String field = toField(path); String[] terms = convert(path, operation.getArg(1)); if (terms.length > 1) { BooleanQuery bq = new BooleanQuery(); for (String s : terms) { bq.add(new WildcardQuery(new Term(field, "*" + s + "*")), Occur.MUST); } return bq; } return new WildcardQuery(new Term(field, terms[0])); }
@Factory public Filter getFilter() { BooleanQuery query = new BooleanQuery(); if (includeTerms.isEmpty()) { query.add(new MatchAllDocsQuery(), Occur.MUST); } else { for (Set<Term> terms : includeTerms) { if (terms.size() == 1) { query.add(new TermQuery(terms.iterator().next()), Occur.MUST); } else if (terms.size() > 1) { BooleanQuery subquery = new BooleanQuery(); for (Term term : terms) { subquery.add(new TermQuery(term), Occur.SHOULD); } query.add(subquery, Occur.MUST); } } } for (Term term : excludeTerms) { query.add(new TermQuery(term), Occur.MUST_NOT); } return new CachingWrapperFilter(new QueryWrapperFilter(query)); } }
private Filter getFilter() { if (filter == null && !filters.isEmpty()) { BooleanQuery filterQuery = new BooleanQuery(); for (Filter filter : filters) { filterQuery.add(filter, Occur.SHOULD); } filter = new QueryWrapperFilter(filterQuery); } return filter; }
protected Query in(Operation<?> operation, QueryMetadata metadata, boolean ignoreCase) { Path<?> path = getPath(operation.getArg(0)); String field = toField(path); @SuppressWarnings("unchecked") //this is the expected type Constant<Collection<?>> expectedConstant = (Constant<Collection<?>>) operation.getArg(1); Collection<?> values = expectedConstant.getConstant(); BooleanQuery bq = new BooleanQuery(); if (Number.class.isAssignableFrom(path.getType())) { for (Object value : values) { TermQuery eq = new TermQuery(new Term(field, convertNumber((Number) value))); bq.add(eq, Occur.SHOULD); } } else { for (Object value : values) { String[] str = convert(path, value); bq.add(eq(field, str, ignoreCase), Occur.SHOULD); } } return bq; }
protected Query stringContains(Operation<?> operation, QueryMetadata metadata, boolean ignoreCase) { verifyArguments(operation); Path<?> path = getPath(operation.getArg(0)); String field = toField(path); String[] terms = convertEscaped(path, operation.getArg(1), metadata); if (terms.length > 1) { BooleanQuery bq = new BooleanQuery(); for (String s : terms) { bq.add(new WildcardQuery(new Term(field, "*" + s + "*")), Occur.MUST); } return bq; } return new WildcardQuery(new Term(field, "*" + terms[0] + "*")); }
BooleanQuery query = new BooleanQuery(); query.add(new TermQuery("attributeId", 10), BooleanClause.Occur.MUST); query.add(new TermQuery("value", "Romance"), BooleanClause.Occur.MUST); // build "IN" clause BooleanQuery pidQuery = new BooleanQuery(); for( long productId : productIds ){ pidQuery.add(new TermQuery("productId", productId), BooleanClause.Occur.SHOULD); } query.add(pidQuery, BooleanClause.Occur.MUST); TopDocs docs = searcher.search(query, null, searchLimit);
protected Query notIn(Operation<?> operation, QueryMetadata metadata, boolean ignoreCase) { BooleanQuery bq = new BooleanQuery(); bq.add(new BooleanClause(in(operation, metadata, false), Occur.MUST_NOT)); bq.add(new BooleanClause(new MatchAllDocsQuery(), Occur.MUST)); return bq; }
protected Query in(Operation<?> operation, QueryMetadata metadata, boolean ignoreCase) { Path<?> path = getPath(operation.getArg(0)); String field = toField(path); @SuppressWarnings("unchecked") //This is the second argument type Constant<Collection<?>> collConstant = (Constant<Collection<?>>) operation.getArg(1); Collection<?> values = collConstant.getConstant(); BooleanQuery bq = new BooleanQuery(); if (Number.class.isAssignableFrom(path.getType())) { for (Object value : values) { TermQuery eq = new TermQuery(new Term(field, convertNumber((Number) value))); bq.add(eq, Occur.SHOULD); } } else { for (Object value : values) { String[] str = convert(path, value); bq.add(eq(field, str, ignoreCase), Occur.SHOULD); } } return bq; }
protected Query like(Operation<?> operation, QueryMetadata metadata) { verifyArguments(operation); Path<?> path = getPath(operation.getArg(0)); String field = toField(path); String[] terms = convert(path, operation.getArg(1)); if (terms.length > 1) { BooleanQuery bq = new BooleanQuery(); for (String s : terms) { bq.add(new WildcardQuery(new Term(field, "*" + s + "*")), Occur.MUST); } return bq; } return new WildcardQuery(new Term(field, terms[0])); }
BooleanQuery query = new BooleanQuery(); query.add(new TermQuery("attributeId", 7), BooleanClause.Occur.MUST); query.add(new TermQuery("value", "hindi"), BooleanClause.Occur.MUST); TopDocs docs = searcher.search(query, null, searchLimit);