假设我在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仅选择顶部排序的文档来完成折叠
我觉得一定有某种聚合组合能得到我想要的结果,但是我的头撞到墙上了。请帮帮我!?
1条答案
按热度按时间9o685dep1#
目前还没有办法使用collapse来实现它,你可以在这里看到当前的进度:https://github.com/elastic/elasticsearch/issues/45646