elasticsearch 是否支持查询的查询?

does elasticsearch support queries of queries?

我有一个有两种类型的索引:

marker 有 20k 个条目,data - 200k。

我想了解是否可以在本机发出

类型的查询

find in data all entries where name and age match an entry in marker

举个例子,如果marker

"name": "john", "age": 23
"name": "john", "age": 30
"name": "monica", "age": 27

data

"name": "john", "age": 30, "car": "renault"
"name": "john", "age": 30, "car": "peugeot"
"name": "john", "age": 99, "car": "fiat"
"name": "bob", "age": 42, "car": "fiat"

结果会是

"name": "john", "age": 30, "car": "renault"
"name": "john", "age": 30, "car": "peugeot"

因为只有这两个与 marker 中的条目匹配 nameage

我计划在 Python 中通过获取 markersdata 中的所有内容来进行此匹配,咀嚼数据并将结果批量发回(到新索引) .在我看来,这是执行此类查询的一种非常低效的方法,特别是如果大小不是以千计而是以数千万计。

这不可能。您要么需要使用嵌套或 parent/child 文档(您目前不需要),要么使用两步过程(获取 marker 中的所有值,然后将它们与 data 匹配) , 但对于这么多条目来说这并不实用。