TLDR::如果我搜索Game of thrones
,我想在Gamer
之前先Game
。
好吧,下面是我的ES查询,用于查询包含电影标题的索引。我想在字符串的开头优先考虑匹配,这是我认为完成的。
例如:如果我的搜索字词为Gamer
,则End Game
的得分要高于game
。
但是我真的希望它优先考虑确切的第一个 单词匹配项,而不是第一个字符...如果这是描述此问题的正确方法,请优先考虑。我希望这种情况发生:
Game of thrones
之前Gamer
,最后End Game
之后。
有人知道怎么做吗?
这是我当前的查询:
"query": {
"bool": {
"should": [
{
"multi_match": {
"query": "game",
"type": "phrase_prefix",
"max_expansions": 20,
"fields": [
"titleName.title^10",
"titleDescription.displayed",
"titleDescription.short"
],
"boost": 1.5
}
},
{
"multi_match": {
"fuzziness": "AUTO",
"query": "game",
"fields": [
"titleName.title^10",
"titleDescription.displayed",
"titleDescription.short"
]
}
}
]
}
}