Elasticsearch está repleto de características nuevas que te ayudarán a desarrollar las mejores soluciones de búsqueda para tu caso de uso. Aprende a ponerlas en práctica en nuestro webinar práctico sobre crear una experiencia moderna de búsqueda con IA. También puedes iniciar una prueba gratuita en el cloud o prueba Elastic en tu máquina local ahora mismo.
Los desarrolladores que trabajan en motores de búsqueda a menudo se encuentran con el mismo problema: el equipo empresarial no está satisfecho con una búsqueda concreta porque los documentos que esperan que estén en la parte superior de los resultados de búsqueda aparecen en tercer o cuarto lugar en la lista de resultados.
Sin embargo, cuando solucionas este problema, accidentalmente rompes otras consultas porque no pudiste probar todos los casos manualmente. Pero, ¿cómo puedes tú o tu equipo de control de calidad comprobar si un cambio en una consulta tiene un efecto dominó en otras consultas? O aún más importante, ¿cómo puedes estar seguro de que tus cambios realmente mejoraron una consulta?
Hacia una evaluación sistemática
Aquí es donde las listas de evaluación resultan útiles. En lugar de depender de pruebas manuales y subjetivas cada vez que realices un cambio, puedes definir un conjunto fijo de búsquedas que sean relevantes para tu caso de negocio, junto con sus resultados relevantes.
Este conjunto se convierte en tu referencia. Cada vez que implementas un cambio, lo utilizas para evaluar si tu búsqueda realmente mejoró o no.
El valor de este enfoque radica en que:
- Elimina la incertidumbre: ya no necesitas preguntarte si tus cambios afectan a otras consultas; los datos te lo dirán.
- Detiene las pruebas manuales: una vez que se registran los conjuntos de evaluación, la prueba es automática.
- Soporta cambios: puedes mostrar métricas claras que respaldan los beneficios de un cambio.
Cómo empezar a crear tu lista de evaluaciones
Una de las maneras más fáciles de comenzar es tomar una búsqueda representativa y seleccionar manualmente los documentos relevantes. Hay dos formas de hacer esta lista:
- Evaluaciones binarias: cada documento asociado con una búsqueda recibe una etiqueta simple: relevante (generalmente con una puntuación de “1”) y no relevante (“0”).
- Evaluaciones graduadas: aquí, cada documento obtiene una puntuación con diferentes niveles. Por ejemplo: establecer un escala de 0 a 4, similar a un escala Likert, donde 0 = “nada relevante” y 4 = “totalmente relevante”, con variaciones como “relevante”, “algo relevante”, etc.
Los juicios binarios funcionan bien cuando la intención de búsqueda tiene límites claros: ¿Debería este documento estar en los resultados o no?
Las evaluaciones graduadas son más útiles cuando hay áreas grises: algunos resultados son mejores que otros, así que puedes obtener resultados “muy buenos”, “buenos” e “inútiles” y usar métricas que valoren el orden de los resultados y los comentarios del usuario. Sin embargo, las escalas graduadas también presentan inconvenientes: diferentes revisores pueden usar los niveles de puntuación de manera diferente, lo que hace que las evaluaciones sean menos consistentes. Y debido a que las métricas graduadas dan más peso a las puntuaciones más altas, incluso un pequeño cambio (como calificar algo con un 3 en lugar de un 4) puede crear un cambio mucho mayor en la métrica de lo que el revisor pretendía. Esta subjetividad añadida hace que las evaluaciones graduadas sean más complicadas y difíciles de manejar con el tiempo.
¿Necesito clasificar los documentos por mi cuenta?
No necesariamente, ya que hay diferentes formas de crear tu lista de evaluaciones, cada una con sus propias ventajas y desventajas:
- Evaluaciones explícitas: aquí, los expertos revisan cada búsqueda/documento y deciden manualmente si es relevante (o qué tan relevante es). Si bien esto proporciona calidad y control, tiene menos escalabilidad.
- Evaluaciones implícitas: con este método, infieres los documentos relevantes en función del comportamiento real del usuario, como clics, tasa de rebote y compras, entre otros. Este enfoque te permite recopilar datos automáticamente, aunque puede estar sesgado. Por ejemplo, los usuarios tienden a hacer clic en los primeros resultados con más frecuencia, incluso si no son relevantes.
- Evaluaciones generadas por IA: esta última opción utiliza modelos (como LLM) para evaluar automáticamente consultas y documentos, a menudo referidos como jurados de LLM. Es rápido y fácil de escalar, pero la calidad de los datos depende de la calidad del modelo que estés utilizando y de qué tan bien los datos de entrenamiento de LLM se alinean con tus intereses comerciales. Al igual que con las calificaciones humanas, los jurados LLM pueden introducir sus propios sesgos o inconsistencias, por lo que es importante validar su salida contra un conjunto más pequeño de evaluaciones confiables. Los modelos LLM son probabilísticos por naturaleza, por lo que no es raro ver un modelo LLM dando diferentes calificaciones al mismo resultado independientemente de que el parámetro de temperatura sea 0.
A continuación, se incluyen algunas recomendaciones para elegir el mejor método para crear tu conjunto de evaluaciones:
- Decide cuán importantes son para ti algunas características que solo los usuarios puedan juzgar correctamente (como precio, marca, idioma, estilo y detalles del producto). Si esos son críticos, necesitas evaluaciones explícitas para al menos alguna parte de tu lista de evaluaciones.
- Usa evaluaciones implícitas cuando tu motor de búsqueda ya tenga suficiente tráfico para que puedas usar clics, conversiones y métricas de tiempo persistente para detectar tendencias de uso. Aun así, deberías interpretarlos con cuidado, contrastándolos con tus evaluaciones explícitas para prevenir sesgos (por ejemplo: los usuarios tienden a hacer clic más a menudo en los resultados mejor clasificados, incluso si los de menor rango son más relevantes)
Para abordar esto, las técnicas de eliminación del sesgo de posición ajustan o reponderan los datos de clics para reflejar mejor el verdadero interés del usuario. Algunos enfoques incluyen:
- Reordenación de resultados: cambia el orden de los resultados de búsqueda para un subconjunto de usuarios con el fin de estimar cómo afecta la posición a los clics.
- Los modelos de clics incluyen la red bayesiana dinámica (DBN) y el modelo de navegación del usuario (UBM). Estos modelos estadísticos estiman la probabilidad de que un clic refleje un interés real en lugar de solo la posición, utilizando patrones como el desplazamiento, el tiempo de permanencia, la secuencia de clics y el retorno a la página de resultados.
Ejemplo: app de valoración de películas
Requisitos previos
Para ejecutar este ejemplo, necesitas un cluster Elasticsearch 8.x en funcionamiento, localmente o Elastic Cloud Hosted (alojado o sin servidor), y acceso a la API REST o Kibana.
Imagina una app en la que los usuarios puedan realizar el monitoreo de tiempo de actividad de sus opiniones sobre películas y también hacer una búsqueda de películas para ver. Como los textos son escritos por los propios usuarios, pueden contener errores tipográficos y muchas variaciones en cuanto a la expresión. Por eso es fundamental que el motor de búsqueda sea capaz de interpretar esa diversidad y ofrecer resultados útiles para los usuarios.
Para poder repetir consultas sin afectar el comportamiento general de búsqueda, el equipo de negocios de tu empresa creó el siguiente conjunto de evaluaciones binarias, basado en las búsquedas más frecuentes:
| Búsqueda | DocID | Texto |
|---|---|---|
| Actuación de DiCaprio | doc1 | La actuación de DiCaprio en El renacido fue impresionante. |
| Actuación de DiCaprio | doc2 | El origen muestra a Leonardo DiCaprio en uno de sus papeles más icónicos. |
| Actuación de DiCaprio | doc3 | Brad Pitt ofrece una actuación estable en este thriller policial. |
| Actuación de DiCaprio | doc4 | Una aventura llena de acción con impresionantes efectos visuales. |
| películas tristes que te hacen llorar | doc5 | Una historia desgarradora de amor y pérdida que me hizo llorar durante horas. |
| películas tristes que te hacen llorar | doc6 | Una de las películas más tristes de todos los tiempos: ¡trae pañuelos! |
| películas tristes que te hacen llorar | doc7 | Una comedia ligera que te hará reír |
| películas tristes que te hacen llorar | doc8 | Una epopeya de ciencia ficción llena de acción y emoción. |
Creación del índice:
Solicitud en masa:
A continuación se muestra la consulta Elasticsearch que emplea la app:
De juicio a métricas
Por sí solas, las listas de evaluaciones no proporcionan mucha información; son solo una expectativa de los resultados de nuestras consultas. Donde realmente destacan es cuando los usamos para calcular métricas objetivo que midan nuestro rendimiento en búsqueda.
Actualmente, la mayoría de las métricas populares incluyen
- Precisión: mide la proporción de resultados que son realmente relevantes dentro de todos los resultados de búsqueda.
- Recuperación: mide la proporción de resultados relevantes que el motor de búsqueda encontró entre x resultados.
- Ganancia acumulada descontada (DCG): mide la calidad de la clasificación del resultado, considerando que los resultados más relevantes deben estar en la parte superior.
- Rango recíproco medio (MRR): mide la posición del primer resultado relevante. Cuanto más alto estés en la lista, mayor será tu puntuación.
Usando la misma app de clasificación de películas como ejemplo, calcularemos la métrica de recuperación para ver si hay alguna información que se esté excluyendo de nuestras consultas.
En Elasticsearch, podemos usar las listas de evaluaciones para calcular métricas mediante la API de Evaluación de Rankings. Esta API recibe como entrada la lista de evaluaciones, la consulta y la métrica que deseas evaluar, y devuelve un valor, que es una comparación del resultado de la consulta con la lista de evaluaciones.
Vamos a ejecutar la lista de evaluaciones para las dos consultas que tenemos:
Usaremos dos solicitudes para _rank_eval: una para la búsqueda de DiCaprio y otra para películas tristes. Cada solicitud incluye una búsqueda y su lista de evaluaciones (calificaciones). No necesitamos calificar todos los documentos ya que los que no se incluyen en las calificaciones se consideran sin evaluación. Para realizar los cálculos, recuerda que la recuperación solo considera “el conjunto relevante”, los documentos que se consideran relevantes en la clasificación.
En este caso, la búsqueda de DiCaprio tiene una recuperación de 1, mientras que las películas tristes obtuvieron 0. Esto significa que para la primera búsqueda, pudimos obtener todos los resultados relevantes, mientras que en la segunda búsqueda, no obtuvimos ninguno. Por tanto, la recuperación medio es de 0,5.
Tal vez estamos siendo demasiado estrictos con el parámetro minimum_should_match ya que al exigir que el 100 % de las palabras en la consulta se encuentren en los documentos, probablemente estamos excluyendo resultados relevantes. Eliminemos el parámetro minimum_should_match para que un documento se considere relevante si solo se encuentra una palabra de la consulta en él.
Como puedes ver, al eliminar el parámetro minimum_should_match en una de las dos consultas, ahora obtenemos una recuperación promedio de 1 en ambas.
En resumen, al eliminar la cláusula minimum_should_match: 100%, podemos obtener una recuperación perfecta para ambas búsquedas.

¡Lo logramos! ¿Cierto?
¡No tan rápido!
Al mejorar la memoria, abrimos la puerta a un rango más amplio de resultados. Sin embargo, cada ajuste implica una compensación. Por esto es importante definir casos de prueba completos, utilizando diferentes métricas para evaluar los cambios.
El uso de listas de evaluaciones y métricas previene que hagas cambios a ciegas, ya que ahora tienes datos para respaldarlos. La validación ya no es manual y repetitiva, y puedes probar tus cambios en más de un caso de uso. Además, las pruebas A/B te permiten probar en tiempo real qué configuración funciona mejor para tus usuarios y tu caso de negocio, cerrando así la brecha entre métricas técnicas y métricas reales.
Recomendaciones finales para el uso de listas de evaluaciones
Trabajar con listas de evaluaciones no solo consiste en medir, sino también en crear un marco de trabajo que te permita iterar con confianza. Para lograr esto, puedes seguir estas recomendaciones:
- Empieza poco a poco, pero empieza. No es necesario que tengas 10 000 consultas con 50 listas de evaluaciones cada una. Solo necesitas identificar las 5 a 10 consultas más críticas para tu caso de negocio y definir qué documentos esperas ver en la parte superior de los resultados. Esto ya te da una base. Por lo general, te conviene comenzar con las consultas principales y las consultas sin resultados. También puedes comenzar a probar con una métrica fácil de configurar como Precisión y luego ir aumentando la complejidad.
- Valida con los usuarios. Complementa los números con pruebas A/B en producción. De esta manera, sabrás si los cambios que se ven bien en las métricas también están generando un impacto real.
- Haz un mantenimiento de la lista. Tu caso de negocio evolucionará, y también lo harán tus consultas críticas. Actualiza tu evaluación de forma periódica para reflejar las necesidades nuevas.
- Haz que sea parte del flujo. Integra listas de evaluaciones en tus pipelines de desarrollo. Asegúrate de que cada cambio de configuración, sinónimo o análisis de texto se valide automáticamente contra tu lista base.
- Conecta conocimientos técnicos con estrategia. No te limites a medir parámetros técnicos como la precisión o la recuperación. Usa tus resultados de la evaluación para influir en los resultados comerciales.




