elasticsearch基于脚本的排序

elasticsearch排序一般是按照相关性分数(relevance score)排序,或者mapping中其他字段.除此之外,elasticsearch还可以自己编写脚本来对结果排序.基本用法如下:

'sort' => [
    '_script' => [
        'script' => [
            'lang' => 'painless',
            'source' => "排序算法代码",
            'params' => [
                // 传入source中的参数
            ],
        ],
        'order' => 'asc/desc'
    ]
],

lang指定脚本的语言, painlesselasticsearch的默认脚本语言.source是写代码的地方.paramssource中需要传入的参数.painless语法在这里