Elasticsearch排序不适用于嵌套字段

时间:2016-07-13 19:27:44

标签: elasticsearch spring-data-elasticsearch

Elasticsearch排序不适用于嵌套字段。它显示了升序和降序值的混合。像40,30,50。它没有按照这样的升序显示:30,40,50

查询:

string

1 个答案:

答案 0 :(得分:3)

对嵌套字段进行排序很难,问题是您可以拥有多个嵌套文档,因此您必须决定选择哪个文档。一种方法是在嵌套文档中具有某个字段的最小值,并对该值进行排序。您可以使用模式属性执行此操作。您还需要 nested_pa​​th 属性。

它应该是这样的:

   "sort" : [
       {
          "sellerInfoES.offerPrice" : {
             "mode" :  "avg",
             "order" : "asc",
             "nested_path" : "sellerInfoES"
          }
       }
    ]

更多信息可以在elasticsearch参考中找到: https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-sort.html#_nested_sorting_example