elasticsearch排序一般是按照相关性分数(relevance score)排序,或者mapping中其他字段.除此之外,elasticsearch还可以自己编写脚本来对结果排序.基本用法如下:
'sort' => [
'_script' => [
'script' => [
'lang' => 'painless',
'source' => "排序算法代码",
'params' => [
// 传入source中的参数
],
],
'order' => 'asc/desc'
]
],
lang指定脚本的语言, painless是elasticsearch的默认脚本语言.source是写代码的地方.params是source中需要传入的参数.painless语法在这里