gpt4 book ai didi

elasticsearch - 如何在 Elasticsearch 中按 child 数量对 parent 进行排序

转载 作者:行者123 更新时间:2023-12-02 22:15:23 24 4
gpt4 key购买 nike

我的索引中有 parent/child 相关文档,想获得按 child 数量排序的 parent 列表。有什么办法吗?我正在使用 Elasticsearch 1.5.1

现在我可以通过使用 inner_hits 轻松获得子文档的数量以及父查询结果功能,但似乎无法从脚本或搜索/评分功能访问 inner_hits.{child_type_name}.hits.total 值。有什么想法吗?

最佳答案

好吧,我终于找到了答案。感谢@doctorcal 在 #elasticsearch 上的提示互联网资源中心

正如我在问题中提到的,我们可以使用 inner_hits 获得 child 和每个 parent 的列表。在 Elasticsearch 1.5 中。

为了能够根据 child 的数量对 parent 进行排序,我们需要使用一个小技巧 - 将 child 的数量放入 parent 的分数中(默认情况下用于排序)。为此,我们只对 has_child 使用评分模式 sum查询:

{
"query": {
"has_child": {
"type": "comment",
"score_mode": "sum",
"query": {
"match_all": {}
},
"inner_hits": {}
}
}
}

注意:此查询有一个限制 - 似乎您无法保留有关初始分数(查询的相关性分数)的信息,因为我们将其替换为 child 的数量。

关于elasticsearch - 如何在 Elasticsearch 中按 child 数量对 parent 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29607136/

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