指定 sort order in ElasticSearch 的最佳方式是什么?对于多个领域?查询字符串格式似乎根本不起作用:
http://elasticsearch_url/index/_search?sort=field1:asc&sort=field2:desc&size=100
有人想先按字段 1 排序,然后按字段 2 排序,但似乎只有一个字段排序正确。完整的符号效果更好,但第一个条目有时会出现错误的搜索顺序:
curl -s -XGET http://elasticsearch_url/index/_search -d '
{
"sort": [
{ "field1": { "order": "desc" }},
{ "field2": { "order": "desc" }}
],
"size": 100
}'
最佳答案
显然,第二种完整表示法效果更好。
还有一个问题是其中一个字段包含 url,它被 ElasticSearch 以奇怪的方式解析。偶正常string fields可能很难分类,indexing a url in ElasticSearch难度更大。
sort
关键字接受一个可以定位多个字段的数组。
curl -s -XGET http://elasticsearch_url/index/_search -d '
{
"sort": [
{ "field1": { "order": "desc" }},
{ "field2": { "order": "desc" }}
],
"size": 100
}'
关于多个字段的 ElasticSearch 排序顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29802042/