gpt4 book ai didi

sorting - Elasticsearch 按字段存在排序

转载 作者:行者123 更新时间:2023-12-02 22:23:55 25 4
gpt4 key购买 nike

我想按字段存在性对我的 ES 搜索结果进行排序,假设我得到了“价格”字段,并希望所有有价格的结果都在最上面,没有价格的结果都在底部。我知道你可以做一个简单的排序并添加 "missing": "_last"例如:

{"sort" : [{'price': {'missing': '_last', 'order': 'asc'}}]}

但在这种情况下,结果也将按价格排序,我不希望这样。

有没有不用脚本的方法?

最佳答案

可以使用 function score实现这一目标。
这将涉及使用 weight降低不包含特定字段的文档的分数。

示例:

{
"query": {
"function_score": {
"functions": [
{
"weight": 0.5,
"filter": {
"missing": {
"field": "price"
}
}
}
],
"query": {
"match_all": {}
}
}
}
}

以上这会导致带有字段价格的文档显示得更高。

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

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