@Override public SearchResult search(io.gravitee.management.service.search.query.Query query) throws TechnicalException { QueryParser parser = new MultiFieldQueryParser(new String[]{ "name", "content" }, analyzer); parser.setFuzzyMinSim(0.6f); try { final Query parse = parser.parse(QueryParserBase.escape(query.getQuery())); BooleanQuery.Builder bq = new BooleanQuery.Builder(); bq.add(parse, BooleanClause.Occur.MUST); bq.add(new TermQuery(new Term(FIELD_TYPE, FIELD_TYPE_VALUE)), BooleanClause.Occur.MUST); return search(bq.build()); } catch (ParseException pe) { logger.error("Invalid query to search for page documents", pe); throw new TechnicalException("Invalid query to search for page documents", pe); } }
@Override public SearchResult search(io.gravitee.management.service.search.query.Query query) throws TechnicalException { QueryParser parser = new MultiFieldQueryParser(new String[]{ "name", "content" }, analyzer); parser.setFuzzyMinSim(0.6f); try { final Query parse = parser.parse(QueryParserBase.escape(query.getQuery())); BooleanQuery.Builder bq = new BooleanQuery.Builder(); bq.add(parse, BooleanClause.Occur.MUST); bq.add(new TermQuery(new Term(FIELD_TYPE, FIELD_TYPE_VALUE)), BooleanClause.Occur.MUST); return search(bq.build()); } catch (ParseException pe) { logger.error("Invalid query to search for page documents", pe); throw new TechnicalException("Invalid query to search for page documents", pe); } }
qparser.setAllowLeadingWildcard(allow_leading_wildcard); qparser.setEnablePositionIncrements(enable_position_increments); qparser.setFuzzyMinSim(fuzzy_min_sim); qparser.setFuzzyPrefixLength(fuzzy_prefix_length); qparser.setLowercaseExpandedTerms(lowercase_expanded_terms);
@Override public SearchResult search(io.gravitee.management.service.search.query.Query query) throws TechnicalException { QueryParser parser = new MultiFieldQueryParser(new String[]{ "firstname", "lastname", "displayname", "displayname_split", "email" }, analyzer); parser.setFuzzyMinSim(0.6f); parser.setAllowLeadingWildcard(true); try { Query parse = parser.parse(QueryParserBase.escape(query.getQuery())); BooleanQuery.Builder userQuery = new BooleanQuery.Builder(); BooleanQuery.Builder userFieldsQuery = new BooleanQuery.Builder(); userFieldsQuery.add(parse, BooleanClause.Occur.SHOULD); userFieldsQuery.add(new WildcardQuery(new Term("firstname", '*' + query.getQuery() + '*')), BooleanClause.Occur.SHOULD); userFieldsQuery.add(new WildcardQuery(new Term("lastname", '*' + query.getQuery() + '*')), BooleanClause.Occur.SHOULD); userFieldsQuery.add(new WildcardQuery(new Term("displayname", '*' + query.getQuery() + '*')), BooleanClause.Occur.SHOULD); userFieldsQuery.add(new WildcardQuery(new Term("email", '*' + query.getQuery() + '*')), BooleanClause.Occur.SHOULD); userQuery.add(userFieldsQuery.build(), BooleanClause.Occur.MUST); userQuery.add(new TermQuery(new Term(FIELD_TYPE, FIELD_TYPE_VALUE)), BooleanClause.Occur.MUST); return search(userQuery.build(), query.getPage()); } catch (ParseException pe) { logger.error("Invalid query to search for user documents", pe); throw new TechnicalException("Invalid query to search for user documents", pe); } }
@Override public SearchResult search(io.gravitee.management.service.search.query.Query query) throws TechnicalException { QueryParser parser = new MultiFieldQueryParser(new String[]{ "firstname", "lastname", "displayname", "displayname_split", "email" }, analyzer); parser.setFuzzyMinSim(0.6f); parser.setAllowLeadingWildcard(true); try { Query parse = parser.parse(QueryParserBase.escape(query.getQuery())); BooleanQuery.Builder userQuery = new BooleanQuery.Builder(); BooleanQuery.Builder userFieldsQuery = new BooleanQuery.Builder(); userFieldsQuery.add(parse, BooleanClause.Occur.SHOULD); userFieldsQuery.add(new WildcardQuery(new Term("firstname", '*' + query.getQuery() + '*')), BooleanClause.Occur.SHOULD); userFieldsQuery.add(new WildcardQuery(new Term("lastname", '*' + query.getQuery() + '*')), BooleanClause.Occur.SHOULD); userFieldsQuery.add(new WildcardQuery(new Term("displayname", '*' + query.getQuery() + '*')), BooleanClause.Occur.SHOULD); userFieldsQuery.add(new WildcardQuery(new Term("email", '*' + query.getQuery() + '*')), BooleanClause.Occur.SHOULD); userQuery.add(userFieldsQuery.build(), BooleanClause.Occur.MUST); userQuery.add(new TermQuery(new Term(FIELD_TYPE, FIELD_TYPE_VALUE)), BooleanClause.Occur.MUST); return search(userQuery.build(), query.getPage()); } catch (ParseException pe) { logger.error("Invalid query to search for user documents", pe); throw new TechnicalException("Invalid query to search for user documents", pe); } }
protected void setParserParameters(org.apache.lucene.queryparser.classic.QueryParser parser) { setQueryBuilderParameters(parser); if (default_operator != null) parser.setDefaultOperator(default_operator.queryParseroperator); if (allow_leading_wildcard != null) parser.setAllowLeadingWildcard(allow_leading_wildcard); if (phrase_slop != null) parser.setPhraseSlop(phrase_slop); if (auto_generate_phrase_query != null) parser.setAutoGeneratePhraseQueries(auto_generate_phrase_query); if (analyzer_range_terms != null) parser.setAnalyzeRangeTerms(analyzer_range_terms); if (fuzzy_min_sim != null) parser.setFuzzyMinSim(fuzzy_min_sim); if (fuzzy_prefix_length != null) parser.setFuzzyPrefixLength(fuzzy_prefix_length); if (lowercase_expanded_terms != null) parser.setLowercaseExpandedTerms(lowercase_expanded_terms); if (max_determinized_states != null) parser.setMaxDeterminizedStates(max_determinized_states); if (splitOnWhitespace != null) parser.setSplitOnWhitespace(splitOnWhitespace); }
"content" }, analyzer, PAGE_FIELD_BOOST); pageParser.setFuzzyMinSim(0.6f); pageParser.setAllowLeadingWildcard(true);
"content" }, analyzer, PAGE_FIELD_BOOST); pageParser.setFuzzyMinSim(0.6f); pageParser.setAllowLeadingWildcard(true);