2013-02-13 21 views
7

Sto cercando di ordinare i risultati della ricerca per una data su più pagine di risultati. L'ordinamento funziona all'interno di ogni pagina, c'è un modo per ordinare l'intero set?ElasticSearch Paginazione e ordinamento

Ad esempio: Se la pagina 1 contiene elementi dal 13 febbraio al 1 febbraio; la seconda pagina non dovrebbe avere articoli dopo il 1 febbraio.

Ecco un breve frammento della richiesta che sto inviando. Ho anche provato a ordinare per data e poi a suscore, ma questo ha prodotto risultati ancora più strani (in primo luogo, l'ordinamento era lo stesso).

{ 
    "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 ... 
     ] 
    } 
    } 
} 

Qualche idea? Grazie in anticipo!

+0

Dovrebbe essere la data quindi _score. Per favore considera di includere i tuoi "strani" risultati nella domanda. Qualcuno potrebbe essere in grado di spiegare perché sono così strani. – imotov

+0

Come ho detto nella domanda, ho provato a ordinare per data e poi su _score. Cercherò di fare dei risultati oggi. – Jake

+0

Scusa, non ho letto abbastanza bene il tuo commento per cogliere quello che stai dicendo. A partire da ora il _sort non è a posto e sto ancora vedendo gli stessi risultati. – Jake

risposta

10

In breve, sono un idiota.

Non stavo moltiplicando l'indice della pagina per il numero di elementi sulla pagina. Non sono sicuro di aver perso le stesse entrate in ogni pagina, spostato da un singolo punto.

Sono sicuro che questo risolverà tutti gli altri problemi dispari con cui ho avuto a che fare.

+6

:-) Siamo stati tutti in un posto simile, sono sicuro. –

6

specie, dimensioni, da devono essere nella radice

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

Search API - Sort

+0

ciao signore, per favore, puoi rispondere sul mio http://stackoverflow.com/questions/35719728/pagination-in-elasticsearch-laravel riguarda anche l'impaginazione –