2016-07-13 3 views
1

중첩 필드에서 Elasticsearch 정렬이 작동하지 않습니다. 오름차순 및 내림차순 값이 혼합되어 표시됩니다. 40, 30, 50처럼.중첩 필드에서 Elasticsearch 정렬이 작동하지 않습니다.

쿼리 50, 30, 40 : :이 같은 오름차순으로 표시되지 않는 것 중첩 된 필드에 정렬

"sort": [ 
    { 
     "sellerInfoES.offerPrice": { 
     "order": "asc", 
     "ignore_unmapped": true, 
     "missing": "_last" 
     } 
    } 
    ] 
+1

뿐만 아니라 당신의 게시물에 예상치 못한 결과를 야기 데이터를 표시하십시오

이 같은해야한다. – YakovL

답변

1

이 어려운 문제는 당신이 결정해야하므로 여러 중첩 된 문서를 가질 수 있다는 것입니다 어떤 문서를 골라야하는지. 한 가지 방법은 중첩 된 문서에서 특정 필드의 최소값을 가져 와서 해당 값을 정렬하는 것입니다. 모드 속성을 사용하여이 작업을 수행 할 수 있습니다. nested_path 속성도 필요합니다.

"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