diff --git a/src/main/java/org/codelibs/fess/helper/QueryHelper.java b/src/main/java/org/codelibs/fess/helper/QueryHelper.java index 3a15eee5f..54478d1f1 100644 --- a/src/main/java/org/codelibs/fess/helper/QueryHelper.java +++ b/src/main/java/org/codelibs/fess/helper/QueryHelper.java @@ -307,7 +307,8 @@ public class QueryHelper implements Serializable { final String field = wildcardQuery.getField(); if (Constants.DEFAULT_FIELD.equals(field)) { context.addFieldLog(field, wildcardQuery.getTerm().text()); - return buildDefaultQueryBuilder((f, b) -> QueryBuilders.wildcardQuery(f, wildcardQuery.getTerm().text()).boost(b)); + return buildDefaultQueryBuilder((f, b) -> QueryBuilders.wildcardQuery(f, wildcardQuery.getTerm().text()).boost( + b * wildcardQuery.getBoost())); } else if (isSearchField(field)) { context.addFieldLog(field, wildcardQuery.getTerm().text()); return QueryBuilders.wildcardQuery(field, wildcardQuery.getTerm().text()).boost(wildcardQuery.getBoost()); @@ -315,7 +316,7 @@ public class QueryHelper implements Serializable { final String origQuery = wildcardQuery.getTerm().toString(); context.addFieldLog(Constants.DEFAULT_FIELD, origQuery); context.addHighlightedQuery(origQuery); - return buildDefaultQueryBuilder((f, b) -> QueryBuilders.wildcardQuery(f, origQuery).boost(b)); + return buildDefaultQueryBuilder((f, b) -> QueryBuilders.wildcardQuery(f, origQuery).boost(b * wildcardQuery.getBoost())); } } @@ -323,7 +324,8 @@ public class QueryHelper implements Serializable { final String field = prefixQuery.getField(); if (Constants.DEFAULT_FIELD.equals(field)) { context.addFieldLog(field, prefixQuery.getPrefix().text()); - return buildDefaultQueryBuilder((f, b) -> QueryBuilders.prefixQuery(f, prefixQuery.getPrefix().text()).boost(b)); + return buildDefaultQueryBuilder((f, b) -> QueryBuilders.prefixQuery(f, prefixQuery.getPrefix().text()).boost( + b * prefixQuery.getBoost())); } else if (isSearchField(field)) { context.addFieldLog(field, prefixQuery.getPrefix().text()); return QueryBuilders.prefixQuery(field, prefixQuery.getPrefix().text()).boost(prefixQuery.getBoost()); @@ -331,7 +333,7 @@ public class QueryHelper implements Serializable { final String origQuery = prefixQuery.getPrefix().toString(); context.addFieldLog(Constants.DEFAULT_FIELD, origQuery); context.addHighlightedQuery(origQuery); - return buildDefaultQueryBuilder((f, b) -> QueryBuilders.prefixQuery(f, origQuery).boost(b)); + return buildDefaultQueryBuilder((f, b) -> QueryBuilders.prefixQuery(f, origQuery).boost(b * prefixQuery.getBoost())); } } @@ -342,7 +344,7 @@ public class QueryHelper implements Serializable { if (Constants.DEFAULT_FIELD.equals(field)) { context.addFieldLog(field, term.text()); return buildDefaultQueryBuilder((f, b) -> QueryBuilders.fuzzyQuery(f, term.text()) - .fuzziness(Fuzziness.fromEdits(fuzzyQuery.getMaxEdits())).boost(b)); + .fuzziness(Fuzziness.fromEdits(fuzzyQuery.getMaxEdits())).boost(b * fuzzyQuery.getBoost())); } else if (isSearchField(field)) { context.addFieldLog(field, term.text()); return QueryBuilders.fuzzyQuery(field, term.text()).boost(fuzzyQuery.getBoost()) @@ -352,7 +354,7 @@ public class QueryHelper implements Serializable { context.addFieldLog(Constants.DEFAULT_FIELD, origQuery); context.addHighlightedQuery(origQuery); return buildDefaultQueryBuilder((f, b) -> QueryBuilders.fuzzyQuery(f, origQuery) - .fuzziness(Fuzziness.fromEdits(fuzzyQuery.getMaxEdits())).boost(b)); + .fuzziness(Fuzziness.fromEdits(fuzzyQuery.getMaxEdits())).boost(b * fuzzyQuery.getBoost())); } } @@ -395,7 +397,7 @@ public class QueryHelper implements Serializable { } else if (Constants.DEFAULT_FIELD.equals(field)) { context.addFieldLog(field, text); context.addHighlightedQuery(text); - return buildDefaultQueryBuilder((f, b) -> QueryBuilders.matchPhraseQuery(f, text).boost(b)); + return buildDefaultQueryBuilder((f, b) -> QueryBuilders.matchPhraseQuery(f, text).boost(b * termQuery.getBoost())); } else if ("sort".equals(field)) { final String[] values = text.split("\\."); if (values.length > 2) { @@ -430,7 +432,7 @@ public class QueryHelper implements Serializable { final String origQuery = termQuery.toString(); context.addFieldLog(Constants.DEFAULT_FIELD, origQuery); context.addHighlightedQuery(origQuery); - return buildDefaultQueryBuilder((f, b) -> QueryBuilders.matchPhraseQuery(f, origQuery).boost(b)); + return buildDefaultQueryBuilder((f, b) -> QueryBuilders.matchPhraseQuery(f, origQuery).boost(b * termQuery.getBoost())); } } @@ -445,7 +447,7 @@ public class QueryHelper implements Serializable { final String text = String.join(" ", texts); context.addFieldLog(field, text); StreamUtil.of(texts).forEach(t -> context.addHighlightedQuery(t)); - return buildDefaultQueryBuilder((f, b) -> QueryBuilders.matchPhraseQuery(f, text).boost(b)); + return buildDefaultQueryBuilder((f, b) -> QueryBuilders.matchPhraseQuery(f, text).boost(b * query.getBoost())); } private boolean isSearchField(final String field) {