我想要排序name,但price在结果的末尾保留带有空或缺少数据的条目.
我试过了:
sort: {
sorting.name: {
order: "asc"
},
prices.minprice.price: {
missing: "_last"
}
}
Run Code Online (Sandbox Code Playgroud)
但这只是按名称排序.
为此,我们可以使用自定义功能评分(比Elasticsearch文档中基于自定义脚本的排序要快)。如果缺少价格,则数值将返回0。
然后,我们首先对得分进行排序,以将其分为价格数据缺失的部分和价格数据缺失的部分,然后根据名称对这两部分进行分类。
{
"query": {
"function_score": {
"boost_mode": "replace",
"query": {"match_all": {}},
"script_score": {
"script": "doc['price'].value == 0 ? 0 : 1"
}
}
},
"sort": [
"_score",
"name"
]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7988 次 |
| 最近记录: |