gpt4 book ai didi

sorting - Elasticsearch按几个字段名称排序

转载 作者:行者123 更新时间:2023-12-03 01:54:35 26 4
gpt4 key购买 nike

我想对几个字段进行排序,使它们具有相同的优先级。

目前,我的排序如下:

"sort": [
{
"stats.favoriteCount": {
"order": "desc",
"missing": 0
},
"stats.likeCount": {
"order": "desc",
"missing": 0
}
}
]

我的问题是,即使 favoriteCount具有较高的值,也将始终首先处理 likeCount

因此,对于具有以下内容的2个文档:
1: {"stats.favoriteCount": 50, "likeCount": 0}
2: {"stats.favoriteCount": 0, "likeCount": 70}

由于Elasticsearch将排序转换为[50,0]和[0,70],因此第一个文档的排名会更高。

我能以某种方式将这两个字段在排序方式上等同吗?

最佳答案

我认为您需要脚本排序。像这样:

{
"sort": {
"_script": {
"type": "number",
"script": "if (doc['stats.favoriteCount'].value>doc['stats.likeCount'].value) return doc['stats.favoriteCount'].value; return doc['stats.likeCount'].value;",
"lang": "groovy",
"order": "desc"
}
}
}

关于sorting - Elasticsearch按几个字段名称排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37565020/

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