令牌位置对得分的重要性是什么? 我希望当令牌匹配时,位置1中的令牌在结果中返回的位置高于位置2中的令牌。
我有一个索引 橙色椰子苹果 椰子橙苹果 椰子苹果橙 椰子红橙色
搜索单词"椰子"匹配查询。
在这些位置返回 1个橙色椰子苹果 2椰子红橙 3椰子橙苹果 4椰子苹果橙
我希望看到橘子椰子回到第4位。
为什么会发生这种情况,以及我可能缺少的解决方案/设置?
由于
PUT name
{
"template": "name*",
"mappings": {
"name": {
"_all": {
"enabled": false
},
"properties": {
"name": {
"type": "text",
"analyzer": "standard"
}
}
}
}
}
PUT name/name/1
{
"name" : "orange coconut apple"
}
PUT name/name/2
{
"name" : "coconut orange apple"
}
PUT name/name/3
{
"name" : "coconut red orange"
}
PUT name/name/4
{
"name" : "coconut apple orange"
}
GET name/_search
{
"query": {
"match" : { "name" : "coconut" }
}
}
答案 0 :(得分:0)
尝试在布尔查询中使用match phrase query,其中您的上述查询是{{1}}子句,匹配短语查询是{{1}}子句。
有关解释,请检查Elasticsearch - The definitive guide
我强烈建议您阅读整个search in depth章节,因为这会清除很多用于控制查询相关性的内容,这些内容非常明显。