gpt4 book ai didi

elasticsearch - 如何使用has_child过滤器排除文档

转载 作者:行者123 更新时间:2023-12-03 00:35:59 25 4
gpt4 key购买 nike

我在Elasticsearch中有以下映射:
my_parent-父类型
my_child-子类型(与my_parent具有多对一关系)

假设my_child具有字段name

我要做的是获取所有没有任何子文档的my_parent文档,其name等于test

这等效于SQL:
SELECT * FROM my_parent WHERE id NOT IN (
SELECT DISTINCT parent_id
FROM my_child
WHERE name = 'test'
)

可以在Elasticsearch中通过单个查询完成吗?还是我应该使用2个查询?

最佳答案

您可以使用has_childbool must_not查询来实现所需的功能。

POST <indexname>/my_parent/_search
{
"query": {
"bool": {
"must_not": [
{
"has_child": {
"type": "my_child",
"query": {
"term": {
"name": {
"value": "test"
}
}
}
}
}
]
}
}
}

关于elasticsearch - 如何使用has_child过滤器排除文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34506632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com