Elasticsearch 相关性搜索:脚本排序与字段数据管理
1. 脚本排序
在 Elasticsearch 中,除了使用常规的排序方法,还可以利用脚本来对文档进行排序,这在处理文档中不存在的字段排序时非常有用。
例如,当你搜索关于 “elasticsearch” 的事件,并希望按参加人数对结果进行排序时,可以使用以下请求:
curl -XPOST 'localhost:9200/get-together/event/_search?pretty' -d'{
"query": {
"match": {
"description": "elasticsearch"
}
},
"sort": [
{
"_script": {
"script": "doc['attendees'].values.size()",
"type": "number",
"order": "desc"
}
},
"_score"
]
}'
上述请求中,使用 _script 对参加人数进行排序,同时指定排序类型为数字,并按降序排列。如果多个文档的参加人数相同,则使用 _score 作为次要排序字段。
不过,虽然脚本排序功能强大,但使用 function_score 查询来影响文档得分,然后按 _score 排序会更加简单和高效,这样所有的
超级会员免费看
订阅专栏 解锁全文
868

被折叠的 条评论
为什么被折叠?



