我在索引中有parent/ child相关的文档,并希望获得按子项数排序的父项列表.这有什么办法吗?我正在使用Elasticsearch1.5.1
现在我可以通过使用inner_hits功能轻松获取子文档的数量以及父查询结果,但似乎无法inner_hits.{child_type_name}.hits.total从脚本或搜索/评分函数访问值.有任何想法吗?
好吧,我终于找到了答案.感谢@doctorcal对#elasticsearch IRC的提示
正如我在这个问题提到的,我们可以使用每个家长让孩子的名单一起inner_hits在Elasticsearch1.5.
为了能够按照孩子的数量对父母进行排序,我们需要使用一个小技巧 - 将孩子的数量放入父母的分数中(默认情况下用于排序).为此,我们只是使用得分模式sum为has_child查询:
{
"query": {
"has_child": {
"type": "comment",
"score_mode": "sum",
"query": {
"match_all": {}
},
"inner_hits": {}
}
}
}
Run Code Online (Sandbox Code Playgroud)
注意:此查询有一个限制 - 似乎您无法保留有关初始分数(查询的相关性分数)的信息,因为我们将其替换为子项数.
| 归档时间: |
|
| 查看次数: |
1662 次 |
| 最近记录: |