Published signals

De 10 minutos a 1 segundo: Una optimización en tres rondas para la paginación profunda con saltos de página arbitrarios en Elasticsearch

Score: 8/10 Topic: Elasticsearch deep pagination optimization with search_after and Redis caching

Este artículo detalla una optimización en tres rondas del equipo de servidores de internet de vivo para permitir saltos de página arbitrarios en la paginación profunda de Elasticsearch, reduciendo el tiempo de consulta de 10 minutos a 1 segundo. La solución utiliza search_after combinado con un caché de anclas multinivel en Redis, abordando una limitación clave de ES. Ofrece un enfoque práctico y escalable para entornos de producción que necesitan acceso aleatorio a conjuntos de resultados profundos.

Los métodos de paginación nativos de Elasticsearch, como from/size, se vuelven prohibitivamente lentos para páginas profundas debido a la necesidad de recuperar y descartar grandes conjuntos de resultados. Este artículo presenta una solución novedosa del equipo de servidores de internet de vivo que reduce el tiempo de consulta de paginación profunda de 10 minutos a 1 segundo. El enfoque utiliza una optimización en tres rondas: primero, el precalentamiento segmentado de un caché Redis; segundo, el posicionamiento del punto de anclaje más cercano combinado con search_after; y tercero, una estrategia de caché de anclas multinivel. La idea clave es almacenar en caché puntos de anclaje a intervalos regulares (por ejemplo, cada 1000 documentos) y usar search_after para saltar al anclaje en caché más cercano, luego escanear hacia adelante hasta la página exacta. Esto evita la sobrecarga del desplazamiento profundo mientras se admiten saltos de página arbitrarios. El artículo incluye puntos de referencia de rendimiento detallados y compensaciones, como estrategias de invalidación de caché y consideraciones de memoria. Para los equipos de ingeniería que manejan búsquedas a gran escala o análisis de registros, esto proporciona un patrón listo para producción que equilibra velocidad, consistencia y uso de recursos.