小编L B*_*man的帖子

Elasticsearch 术语查询:数组交集上的提升

我正在尝试创建一个执行以下操作的弹性搜索查询:文档包含 ids ( ) 列表["id1", "id2", "id2"]。我有另一个 id 列表,我想显示其中任何 id 与此列表匹配的文档,并在更多文档 id 与提供的列表匹配时进行提升。我正在使用术语查询,如下所示:

"query": {
  "bool": {
    "must": {
      "terms": {
        "ids": ["id1", "id2", "id3"],
        "boost": 10
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这会正确过滤掉没有任何ids匹配的文档id1, id2, or id3,但它会为具有任意数量的匹配 id 的任何文档提供相同的 id _score。因此,如果文档具有] ids: ["id1", "id4"],则其得分与具有ids: ["id1", "id2", "id3"] 的文档相同。

有谁知道如何根据elasticsearch中相交数组元素的数量正确增强此类术语查询?

elasticsearch

5
推荐指数
1
解决办法
697
查看次数

标签 统计

elasticsearch ×1