我们使用弹簧数据弹性搜索。 我们使用multimatch查询来搜索多个字段。
QueryBuilder queryBuilder = multiMatchQuery(searchInput, "id","firstName","lastName","title","nickName","location")
.type(MatchQueryBuilder.Type.PHRASE_PREFIX).analyzer("standard");
我们使用PHRASE_PREFIX进行词组匹配。
现在,我们想为nickName添加完全匹配的提升(仅在完全匹配时提升)。
例如,当我搜索Phone时,如果nickName上存在完全匹配,则应在结果中首先排序。如果没有完全匹配,那么firstName应该给予提升。我试过像下面这样的提升。
QueryBuilder queryBuilder = multiMatchQuery(searchInput, "id","firstName","lastName","title","nickName^9","location")
.type(MatchQueryBuilder.Type.PHRASE_PREFIX).analyzer("standard");
Boosting似乎没有起作用。也不确定,如何仅在场地上的精确匹配上添加提升。
由于