2013-02-13 3 views
7

결과의 여러 페이지에 걸쳐 날짜별로 검색 결과를 정렬하려고합니다. 정렬은 각 페이지에서 작동합니다. 전체 세트를 정렬 할 수있는 방법이 있습니까?ElasticSearch 페이지 매기기 및 정렬

예 : 1 페이지에 2 월 13 일부터 2 월 1 일까지의 항목이 있으면; 두 번째 페이지에는 2 월 1 일 이후에 항목이 없어야합니다.

다음은 보내는 요청의 간단한 내용입니다. 나는 또한 _score 날짜별로 정렬을 시도했지만, 그것은 낯선 결과 (주로 정렬 순서가 동일 함)를 만들어 냈다.

{ 
    "query": { 
    "from": 0, 
    "size": 24 
    "sort": [ 
     "published_on": { 
     "missing": "_last", 
     "ignore_unmapped": true, 
     "order": "desc" 
     } 
    ] 
    "custom_filters_score": { 
     "query": { 
     "bool": { 
      "must": [ 
      { 
       "match": { 
       "content": "Some query" 
       } 
      } 
      ] 
      ... more ... 
     } 
     }, 
     "filters": [ 
     { 
      "filter" => { 
      "type" => { 
       "value" => "cats" 
      } 
      }, 
      "boost" => 2 
     } 
     ... more ... 
     ] 
    } 
    } 
} 

의견이 있으십니까? 미리 감사드립니다!

+0

날짜는 _score 여야합니다. 질문에 "이상한"결과를 포함 시키십시오. 누군가가 왜 그렇게 이상한 지 설명 할 수 있습니다. – imotov

+0

내가 질문에서 말했듯이 나는 날짜별로 정렬을 시도했다. 나는 오늘 결과를 올리려고 노력할 것이다. – Jake

+0

죄송합니다. 귀하의 의견을 읽지 못했습니다. 현재로서는 _sort가 제자리에 없으며 여전히 동일한 결과가 표시됩니다. – Jake

답변

10

에 있어야합니다, 나는 바보입니다.

페이지 색인에 페이지의 항목 수를 곱하지 않았습니다. 나는 어떻게 모든 페이지에서 동일한 엔트리를 놓쳤는지 모르겠다. 한 곳으로 옮겼다.

나는 이것이 내가 다루고있는 다른 모든 이상한 문제를 해결할 것이라고 확신한다.

+6

:-) 페이지 상단에 있습니다. 비슷한 장소에 있습니다. 확실한. –

6

종류, 크기에서 루트 한마디로

{ 
     query:{ 
      ... 
     }, 
     sort:[ 
     ... 
     ], 
     from:15, 
     size:5 
    } 

Search API - Sort

+0

안녕하세요 제발 내 http://stackoverflow.com/questions/35719728/pagination-in-elasticsearch-laravel에서 답변 해 주실 수 있습니다. 페이지 번호는 –

관련 문제