我正在使用ElasticSearch 7.10和elasticsearch -py。
我有两个索引,为了示例,我们假设它们是children
and elves
,你可以想象这样的事情:
PUT /children/1
{
"name": "Peter Parker"
}
PUT /children/2
{
"name": "Doc Ock"
}
PUT /elves/1
{
"bad_children_list": ["Doc Ock", "Venom", "Green Goblin"]
}
PUT /elves/2
{
"bad_children_list": ["Sandman", "Mysterio", "Kingpin"]
}
是否有任何查询可以获取所有好孩子(即所有那些没有出现在 any 中的孩子bad children list
)?
在这个例子中,当然只有彼得帕克是个好孩子。
实际的方法包括每批获取内存文档并children
基于“bad_children_list”值进行迭代过滤。当然,这种方法既不高效也不可扩展,因为它依赖于太多的查询。
提前致谢。