ElasticSearch按字段A折叠,按字段B最高命中,按字段C排序结果

h4cxqtbf  于 2022-11-28  发布在  ElasticSearch
关注(0)|答案(1)|浏览(150)

假设我在elasticsearch中有这些文档:

{"name":"alpha", "grp":1, "priority": 1}
{"name":"beta", "grp":1, "priority": 3}
{"name":"gamma", "grp":2, "priority": 5}
{"name":"zeta", "grp":2, "priority": 1}

我想查询我的索引并获得每个grp的单次命中。
grp的命中必须是具有最高priority值的文档。
我的整体查询需要返回所有字段,并按name排序。
示例输出:

{"name":"beta", "grp":1, "priority": 3}
{"name":"gamma", "grp":2, "priority": 5}

查询collapse似乎不起作用,因为我需要按priority而不是name排序。
通过按折叠键https://www.elastic.co/guide/en/elasticsearch/reference/current/collapse-search-results.html仅选择顶部排序的文档来完成折叠
我觉得一定有某种聚合组合能得到我想要的结果,但是我的头撞到墙上了。请帮帮我!?

9o685dep

9o685dep1#

目前还没有办法使用collapse来实现它,你可以在这里看到当前的进度:https://github.com/elastic/elasticsearch/issues/45646

相关问题