fix #2371 use match_phrase_prefix query
This commit is contained in:
parent
d11f66691e
commit
74fd6db28b
1 changed files with 8 additions and 4 deletions
|
@ -511,17 +511,21 @@ public class QueryHelper {
|
|||
final String field = getSearchField(context, prefixQuery.getField());
|
||||
if (Constants.DEFAULT_FIELD.equals(field)) {
|
||||
context.addFieldLog(field, prefixQuery.getPrefix().text());
|
||||
return buildDefaultQueryBuilder((f, b) -> QueryBuilders.prefixQuery(f, toLowercaseWildcard(prefixQuery.getPrefix().text()))
|
||||
.boost(b * boost));
|
||||
return buildDefaultQueryBuilder((f, b) -> QueryBuilders.matchPhrasePrefixQuery(f,
|
||||
toLowercaseWildcard(prefixQuery.getPrefix().text())).boost(b * boost));
|
||||
} else if (isSearchField(field)) {
|
||||
context.addFieldLog(field, prefixQuery.getPrefix().text());
|
||||
return QueryBuilders.prefixQuery(field, toLowercaseWildcard(prefixQuery.getPrefix().text())).boost(boost);
|
||||
if (notAnalyzedFieldSet.contains(field)) {
|
||||
return QueryBuilders.prefixQuery(field, toLowercaseWildcard(prefixQuery.getPrefix().text())).boost(boost);
|
||||
} else {
|
||||
return QueryBuilders.matchPhrasePrefixQuery(field, toLowercaseWildcard(prefixQuery.getPrefix().text())).boost(boost);
|
||||
}
|
||||
} else {
|
||||
final String query = prefixQuery.getPrefix().toString();
|
||||
final String origQuery = toLowercaseWildcard(query);
|
||||
context.addFieldLog(Constants.DEFAULT_FIELD, query);
|
||||
context.addHighlightedQuery(origQuery);
|
||||
return buildDefaultQueryBuilder((f, b) -> QueryBuilders.prefixQuery(f, origQuery).boost(b * boost));
|
||||
return buildDefaultQueryBuilder((f, b) -> QueryBuilders.matchPhrasePrefixQuery(f, origQuery).boost(b * boost));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue