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
}'
答
显然第二个完整符号的效果更好。
还有一个问题,其中一个字段包含urls,这是由ElasticSearch以奇怪的方式分析的。即使正常string fields可以很难排序,indexing a url in ElasticSearch更难。
您不能使用您使用的第一个查询字符串对多个字段进行排序,因为只考虑了一个字段排序。如果您希望对多个字段进行排序,则需要使用完整的符号排序描述 – eliasah