Recuperiamo informazioni da Elasticsearch 2.1 e consentiamo all'utente di sfogliare i risultati. Quando l'utente richiede un numero di pagina elevato, viene visualizzato il seguente messaggio di errore:
La finestra dei risultati è troppo grande, da + la dimensione deve essere minore o uguale a: [10000] ma era [10020]. Vedere l'API di scorrimento per un modo più efficiente per richiedere set di dati di grandi dimensioni. Questo limite può essere impostato modificando il parametro del livello di indice [index.max_result_window]
Il documento elastico dice che ciò è dovuto all'elevato consumo di memoria e all'utilizzo dell'API di scorrimento:
Valori superiori a quelli che possono consumare blocchi significativi di memoria heap per ricerca e per frammento che esegue la ricerca. È più sicuro lasciare questo valore poiché si tratta di utilizzare l'API di scorrimento per qualsiasi scorrimento profondo https://www.elastic.co/guide/en/elasticsearch/reference/2.x/breaking_21_search_changes.html#_from_size_limits
Il fatto è che non voglio recuperare grandi set di dati. Voglio solo recuperare una fetta dal set di dati che è molto in alto nel set di risultati. Anche il documento a scorrimento dice:
Lo scorrimento non è inteso per le richieste degli utenti in tempo reale https://www.elastic.co/guide/en/elasticsearch/reference/2.2/search-request-scroll.html
Questo mi lascia con alcune domande:
1) Il consumo di memoria sarebbe davvero inferiore (se sì perché) se utilizzo l'API di scorrimento per scorrere fino al risultato 10020 (e ignoro tutto ciò che è inferiore a 10000) invece di eseguire una richiesta di ricerca "normale" per il risultato 10000-10020?
2) Non sembra che l'API di scorrimento sia un'opzione per me ma che devo aumentare "index.max_result_window". Qualcuno ha esperienza con questo?
3) Esistono altre opzioni per risolvere il mio problema?
'Result window is too large, from + size must be less than or equal to: [10000] but was [47190]. See the scroll api for a more efficient way to request large data sets. This limit can be set by changing the [index.max_result_window] index level parameter.')
Ha detto che ha 4719 pagine (ogni pagina 10 risultati). e penso che il tuo suggerimento funzioni.