【问题标题】:ElasticSearch sort order for multiple fields多个字段的 ElasticSearch 排序顺序
【发布时间】:2015-04-22 15:21:49
【问题描述】:

为多个字段指定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
}'

【问题讨论】:

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

标签: elasticsearch


【解决方案1】:

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

还有一个问题是其中一个字段包含 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
}'

【讨论】:

  • sn-ps 的代码是一样的吗?发生了什么变化。还是没看懂
  • @DollarAkshay 相同。请问您找到解决方法了吗?
  • 我也遇到了多字段排序的问题,@0x4a6f4672你有以上解决办法吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-17
  • 1970-01-01
相关资源
最近更新 更多