elasticsearch 是否支持查询的查询?
does elasticsearch support queries of queries?
我有一个有两种类型的索引:
marker
,字段为 name
和 age
data
,字段为 name
、age
和 car
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
中的条目匹配 name
和 age
。
我计划在 Python 中通过获取 markers
和 data
中的所有内容来进行此匹配,咀嚼数据并将结果批量发回(到新索引) .在我看来,这是执行此类查询的一种非常低效的方法,特别是如果大小不是以千计而是以数千万计。
这不可能。您要么需要使用嵌套或 parent/child 文档(您目前不需要),要么使用两步过程(获取 marker
中的所有值,然后将它们与 data
匹配) , 但对于这么多条目来说这并不实用。
我有一个有两种类型的索引:
marker
,字段为name
和age
data
,字段为name
、age
和car
marker
有 20k 个条目,data
- 200k。
我想了解是否可以在本机发出
类型的查询find in
data
all entries wherename
andage
match an entry inmarker
举个例子,如果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
中的条目匹配 name
和 age
。
我计划在 Python 中通过获取 markers
和 data
中的所有内容来进行此匹配,咀嚼数据并将结果批量发回(到新索引) .在我看来,这是执行此类查询的一种非常低效的方法,特别是如果大小不是以千计而是以数千万计。
这不可能。您要么需要使用嵌套或 parent/child 文档(您目前不需要),要么使用两步过程(获取 marker
中的所有值,然后将它们与 data
匹配) , 但对于这么多条目来说这并不实用。