platanus / elastic-rails

Elasticsearch integration for Ruby on Rails
MIT License
6 stars 5 forks source link

feat(query): add methods to get results using scroll api #14

Closed difernandez closed 3 years ago

difernandez commented 5 years ago

Problema

A partir de ES2 ya no se pueden realizar consultas páginadas en que from + size > 10000. Este límite se puede configurar a nivel de índice pero una alternativa más eficiente es el uso de la API Scroll

Solución propuesta

Se implementan dos métodos a query que se llamarían al final de una cadena para obtener los resultados. initial_scroll realiza una llamada a la api search con el parámetro scroll. Esto retorna un _scroll_id que luego se agrega al Result correspondiente. scroll_after recibe el último _scroll_id y llama a la api scroll, que entrega el próximo batch de documentos y un nuevo _scroll_id

difernandez commented 3 years ago

Closing this as we didn't need it in the end and we didn't settle on an implementation for this API