Elasticsearch令牌位置与得分相关?

时间:2017-07-18 09:25:13

标签: elasticsearch position token

令牌位置对得分的重要性是什么? 我希望当令牌匹配时,位置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" }
    }
}

1 个答案:

答案 0 :(得分:0)

尝试在布尔查询中使用match phrase query,其中您的上述查询是{{1}}子句,匹配短语查询是{{1}}子句。

有关解释,请检查Elasticsearch - The definitive guide

我强烈建议您阅读整个search in depth章节,因为这会清除很多用于控制查询相关性的内容,这些内容非常明显。