@Override QueryBuilder getQuery(String queryText) { return matchQuery(SORTABLE_ANALYZER.subField(FIELD_KEY), queryText) .boost(50f); } };
@Override QueryBuilder getQuery(String queryText) { return matchQuery(SORTABLE_ANALYZER.subField(FIELD_NAME), queryText) .boost(2.5f); } },
public static ToXContent fullParamer(MatchQueryBuilder query, Paramer paramer) { if (paramer.analysis != null) { query.analyzer(paramer.analysis); } if (paramer.boost != null) { query.boost(paramer.boost); } if (paramer.operator != null) { query.operator(paramer.operator); } if (paramer.minimumShouldMatch != null) { query.minimumShouldMatch(paramer.minimumShouldMatch); } return query; }
@Override public QueryBuilder getQuery(ComponentTextSearchQuery query) { return matchQuery(SORTABLE_ANALYZER.subField(query.getFieldName()), query.getQueryText()) .boost(2.5f); } },
@Override public QueryBuilder getQuery(ComponentTextSearchQuery query) { return matchQuery(SORTABLE_ANALYZER.subField(query.getFieldKey()), query.getQueryText()) .boost(50f); } },
private static QueryBuilder buildQuery(RuleQuery query) { // No contextual query case String queryText = query.getQueryText(); if (StringUtils.isEmpty(queryText)) { return matchAllQuery(); } // Build RuleBased contextual query BoolQueryBuilder qb = boolQuery(); String queryString = query.getQueryText(); if (queryString != null && !queryString.isEmpty()) { BoolQueryBuilder textQuery = boolQuery(); JavaTokenizer.split(queryString) .stream().map(token -> boolQuery().should( matchQuery( SEARCH_GRAMS_ANALYZER.subField(FIELD_RULE_NAME), StringUtils.left(token, DefaultIndexSettings.MAXIMUM_NGRAM_LENGTH)).boost(20f)) .should( matchPhraseQuery( ENGLISH_HTML_ANALYZER.subField(FIELD_RULE_HTML_DESCRIPTION), token).boost(3f))) .forEach(textQuery::must); qb.should(textQuery.boost(20f)); } // Match and partial Match queries // Search by key uses the "sortable" sub-field as it requires to be case-insensitive (lower-case filtering) qb.should(matchQuery(SORTABLE_ANALYZER.subField(FIELD_RULE_KEY), queryString).operator(Operator.AND).boost(30f)); qb.should(matchQuery(SORTABLE_ANALYZER.subField(FIELD_RULE_RULE_KEY), queryString).operator(Operator.AND).boost(15f)); qb.should(termQuery(FIELD_RULE_LANGUAGE, queryString, 3f)); return qb; }
private PhotonQueryBuilder(String query, String language) { defaultMatchQueryBuilder = QueryBuilders.matchQuery("collector.default", query).fuzziness(Fuzziness.ZERO).prefixLength(2).analyzer("search_ngram").minimumShouldMatch("100%"); languageMatchQueryBuilder = QueryBuilders.matchQuery(String.format("collector.%s.ngrams", language), query).fuzziness(Fuzziness.ZERO).prefixLength(2) .analyzer("search_ngram").minimumShouldMatch("100%"); // @formatter:off m_query4QueryBuilder = QueryBuilders.boolQuery() .must(QueryBuilders.boolQuery().should(defaultMatchQueryBuilder).should(languageMatchQueryBuilder) .minimumShouldMatch("1")) .should(QueryBuilders.matchQuery(String.format("name.%s.raw", language), query).boost(200) .analyzer("search_raw")) .should(QueryBuilders.matchQuery(String.format("collector.%s.raw", language), query).boost(100) .analyzer("search_raw")); // @formatter:on // this is former general-score, now inline String strCode = "double score = 1 + doc['importance'].value * 100; score"; ScriptScoreFunctionBuilder functionBuilder4QueryBuilder = ScoreFunctionBuilders.scriptFunction(new Script(ScriptType.INLINE, "painless", strCode, new HashMap<String, Object>())); m_alFilterFunction4QueryBuilder.add(new FilterFunctionBuilder(functionBuilder4QueryBuilder)); m_finalQueryWithoutTagFilterBuilder = new FunctionScoreQueryBuilder(m_query4QueryBuilder, m_alFilterFunction4QueryBuilder.toArray(new FilterFunctionBuilder[0])) .boostMode(CombineFunction.MULTIPLY).scoreMode(ScoreMode.MULTIPLY); // @formatter:off m_queryBuilderForTopLevelFilter = QueryBuilders.boolQuery() .should(QueryBuilders.boolQuery().mustNot(QueryBuilders.existsQuery("housenumber"))) .should(QueryBuilders.matchQuery("housenumber", query).analyzer("standard")) .should(QueryBuilders.existsQuery(String.format("name.%s.raw", language))); // @formatter:on state = State.PLAIN; }
public static ToXContent fullParamer(MatchQueryBuilder query, Paramer paramer) { if (paramer.analysis != null) { query.analyzer(paramer.analysis); } if (paramer.boost != null) { query.boost(paramer.boost); } return query; }
@Override QueryBuilder getQuery(String queryText) { return matchQuery(SORTABLE_ANALYZER.subField(FIELD_NAME), queryText) .boost(2.5f); } },
@Override QueryBuilder getQuery(String queryText) { return matchQuery(SORTABLE_ANALYZER.subField(FIELD_KEY), queryText) .boost(50f); } };
@Override public QueryBuilder createQuery() { return QueryBuilders.matchQuery(field, value).fuzziness(fuzziness).boost(boost); }
@Override public QueryBuilder getQuery(ComponentTextSearchQuery query) { return matchQuery(SORTABLE_ANALYZER.subField(query.getFieldKey()), query.getQueryText()) .boost(50f); } },
@Override public QueryBuilder getQuery(ComponentTextSearchQuery query) { return matchQuery(SORTABLE_ANALYZER.subField(query.getFieldName()), query.getQueryText()) .boost(2.5f); } },
matchQuery.boost(Float.valueOf(val));
matchQuery.autoGenerateSynonymsPhraseQuery(autoGenerateSynonymsPhraseQuery); matchQuery.queryName(queryName); matchQuery.boost(boost); return matchQuery;
private static QueryBuilder buildQuery(RuleQuery query) { // No contextual query case String queryText = query.getQueryText(); if (StringUtils.isEmpty(queryText)) { return matchAllQuery(); } // Build RuleBased contextual query BoolQueryBuilder qb = boolQuery(); String queryString = query.getQueryText(); if (queryString != null && !queryString.isEmpty()) { BoolQueryBuilder textQuery = boolQuery(); JavaTokenizer.split(queryString) .stream().map(token -> boolQuery().should( matchQuery( SEARCH_GRAMS_ANALYZER.subField(FIELD_RULE_NAME), StringUtils.left(token, DefaultIndexSettings.MAXIMUM_NGRAM_LENGTH)).boost(20f)) .should( matchPhraseQuery( ENGLISH_HTML_ANALYZER.subField(FIELD_RULE_HTML_DESCRIPTION), token).boost(3f))) .forEach(textQuery::must); qb.should(textQuery.boost(20f)); } // Match and partial Match queries // Search by key uses the "sortable" sub-field as it requires to be case-insensitive (lower-case filtering) qb.should(matchQuery(SORTABLE_ANALYZER.subField(FIELD_RULE_KEY), queryString).operator(Operator.AND).boost(30f)); qb.should(matchQuery(SORTABLE_ANALYZER.subField(FIELD_RULE_RULE_KEY), queryString).operator(Operator.AND).boost(15f)); qb.should(termQuery(FIELD_RULE_LANGUAGE, queryString, 3f)); return qb; }
matchQuery.boost(boost); return Optional.of(matchQuery);
matchQuery.autoGenerateSynonymsPhraseQuery(autoGenerateSynonymsPhraseQuery); matchQuery.queryName(queryName); matchQuery.boost(boost); return matchQuery;
matchQuery.autoGenerateSynonymsPhraseQuery(autoGenerateSynonymsPhraseQuery); matchQuery.queryName(queryName); matchQuery.boost(boost); return matchQuery;