我有一个关于 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"]
}
}
}
}
希望这可以帮助!