Elasticsearch术语查询:提升阵列交集

时间:2018-05-10 17:31:37

标签: elasticsearch

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

"query": {
  "bool": {
    "must": {
      "terms": {
        "ids": ["id1", "id2", "id3"],
        "boost": 10
      }
    }
  }
}

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

有没有人知道根据elasticsearch中交叉数组元素的数量正确提升这类术语查询的方法?

0 个答案:

没有答案