gpt4 book ai didi

elasticsearch - 从 Elasticsearch 返回带有子文档的父数据

转载 作者:行者123 更新时间:2023-12-02 22:13:37 25 4
gpt4 key购买 nike

是否可以通过在 Elasticsearch 查询中搜索子文档来返回父数据?

我有两种文件类型,例如书和章,作为父/子(非嵌套)相关。

我想对子文档运行搜索并返回子文档,其中包含父文档中的一些字段。我试图避免对父级执行单独的查询。

更新

我能找到的唯一方法是使用 has_child查询,然后进行一系列聚合以回溯到子项并再次应用查询/过滤器。然而,这似乎过于复杂和低效。

GET index/_search
{
"size": 10,
"query": {
"has_child": {
"type": "chapter",
"query": {
"term": {
"field": "value"
}
}
}
},
"aggs": {
"name1": {
"terms": {
"size": 50,
"field": "id"
},
"aggs": {
"name2": {
"top_hits": {
"size": 50
}
},
"name3": {
"children": {
"type": "type2"
},
"aggs": {
"docFilter": {
"filter": {
"query": {
"match": {
"_all": "value"
}
}
},
"aggs": {
"docs": {
"top_hits": {
"size": 50
}
}
}
}
}
}
}
}
}
}

最佳答案

可以做一个 has_child使用 top hits 返回父文档的查询聚合返回子文档,但有点麻烦。

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-aggregations-metrics-top-hits-aggregation.html
Inner Hits将在 1.5.0 中发布的功能将满足您的需求。

http://www.elasticsearch.org/guide/en/elasticsearch/reference/1.x/search-request-inner-hits.html

您可以从 master 构建源代码并尝试一下。

关于elasticsearch - 从 Elasticsearch 返回带有子文档的父数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28451938/

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