我有一个关于 Elasticsearch DSL 的问题。

我想进行全文搜索,但将可搜索记录的范围限定为特定的数据库 ID 数组。

在 SQL 世界中,它相当于 WHERE id IN(1, 2, 3, 4) 的功能。

我一直在研究,但我发现 Elasticsearch 查询 DSL 文档有点神秘并且缺乏有用的示例。任何人都可以指出我正确的方向吗?

最佳答案

这是一个可能适合您的示例查询。这假设在您的索引上启用了 _all 字段(这是默认值)。它将对索引中的所有字段进行全文搜索。此外,通过添加 ids 过滤器,查询将排除 id 不在给定数组中的任何文档。

{
  "bool": {
    "must": {
      "match": {
        "_all": "your search text"
      }
    },
    "filter": {
      "ids": {
        "values": ["1","2","3","4"]
      }
    }
  }
}

希望这可以帮助!

10-08 13:57