ElasticSearch多个字段的排序顺序

问题描述:

为多个字段指定sort order in ElasticSearch的最佳方法是什么?查询字符串格式似乎并没有在所有的工作:ElasticSearch多个字段的排序顺序

http://elasticsearch_url/index/_search?sort=field1:asc&sort=field2:desc&size=100 

一个想通过FIELD1先进行排序,然后通过场2,但只有其中一个字段似乎是正确排序。完整符号效果更好,但第一次输入偶尔会出现错误的搜索顺序:

curl -s -XGET http://elasticsearch_url/index/_search -d ' 
{ 
    "sort": [ 
     { "field1": { "order": "desc" }}, 
     { "field2": { "order": "desc" }} 
    ], 
    "size": 100 
}' 
+2

您不能使用您使用的第一个查询字符串对多个字段进行排序,因为只考虑了一个字段排序。如果您希望对多个字段进行排序,则需要使用完整的符号排序描述 – eliasah

显然第二个完整符号的效果更好。

还有一个问题,其中一个字段包含urls,这是由ElasticSearch以奇怪的方式分析的。即使正常string fields可以很难排序,indexing a url in ElasticSearch更难。