对ElasticSearch中的字符串数组进行排序

Tro*_*roy 5 elasticsearch

我正在使用以下内容对Elasticsearch中具有"usernamesAssigned"属性的文档进行排序.usernamesAssigned是一个字符串数组:

"sort": [
    {
        "_script": {
            "script": "doc["usernamesAssigned"].values.sort().join()",
            "type": "string",
            "lang": "js",
            "order": "asc"
        }
    }
]
Run Code Online (Sandbox Code Playgroud)

我想知道在不使用基于脚本的排序的情况下是否有更有效的方法来做到这一点?

Jer*_*emy 2

这是一个老问题,但我最近在尝试解决同样的问题时遇到了这个问题......

根据文档

Elasticsearch 支持按数组或多值字段排序。mode 选项控制选择哪个数组值来对其所属的文档进行排序。

所以,你应该能够像这样排序:

"sort" : [ {"usernamesAssigned" : {"order" : "asc", "mode" : "min"}} ]

该功能自版本 0.90.0.Beta1 起可用。