gpt4 book ai didi

elasticsearch - Elasticsearch 得分/排序-轮换类别

转载 作者:行者123 更新时间:2023-12-03 02:14:23 26 4
gpt4 key购买 nike

我有这样的文件(当然是简化的情况):

Category: A, Rating: 10
Category: A, Rating: 9
Category: A, Rating: 5

Category: B, Rating: 8
Category: B, Rating: 5
Category: B, Rating: 4
Category: B, Rating: 1

Category: C, Rating: 9
Category: C, Rating: 8
Category: C, Rating: 3
Category: C, Rating: 2
我们可以假设类别也可以是数字,这对我来说并不重要。
我需要实现的结果排序方式是:
旋转的类型-> ABC ABC ABC,并且当某种类型“完成”(假设A)时,例如BC BC BC,然后当B完成时,则更多一些C C C
次要条件是等级,我们要从最高到最低排序
因此,预期输出的示例为:
Category: A, Rating: 10
Category: B, Rating: 8
Category: C, Rating: 9

Category: A, Rating: 9
Category: B, Rating: 5
Category: C, Rating: 8

Category: A, Rating: 5
Category: B, Rating: 4
Category: C, Rating: 3

Category: B, Rating: 1
Category: C, Rating: 2
有没有人暗示如何实现?
我尝试使用function_score和多个script_score选项,但不走运。
我的想法是给每个类别一个数字,然后以某种方式递增它(但是如何?),例如,A = 1,B = 2,C = 3,而A的文档得分为11,210,31,41依此类推,B-> 12、22、32、42,C-> 13、23、33、43等,但我无法找到令人满意的解决方案。
也许有人会有其他想法?任何想法表示赞赏。
顺便说一句,实际情况下,排序/评分标准将不仅仅是一个评分。我现在针对这种情况进行了简化。

最佳答案

我本来想不做任何事情,但是为了扩展Jaycreation的解决方案,我建议在类别字段上使用搜索折叠,然后按评分对折叠部分进行排序。在您的应用中,您可以循环浏览各个组,直到用尽一种类型。
https://www.elastic.co/guide/en/elasticsearch/reference/7.x/collapse-search-results.html

关于elasticsearch - Elasticsearch 得分/排序-轮换类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63897129/

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