Búsqueda híbrida: Resultados combinados de texto completo y kNN

Ahora viste dos enfoques diferentes para buscar en una colección de documentos, cada uno con sus propios beneficios particulares. Si uno de estos métodos se ajusta a tus necesidades, entonces no necesitas nada más, pero en muchos casos cada método de búsqueda devuelve resultados valiosos que el otro método pasaría por alto, así que la mejor opción es ofrecer un conjunto combinado de resultados.

Para estos casos, Elasticsearch ofrece Reciprocal Rank Fusion, un algoritmo que combina resultados de dos o más listas en una sola lista.

Cómo funciona la RRF

Elasticsearch integra el algoritmo RRF en la consulta de búsqueda. Consideremos el siguiente ejemplo, que tiene secciones query y knn para aplicar búsquedas de texto completo y vectoriales respectivamente, y una sección rrf que las combina en una única lista de resultados.

Aunque RRF funciona bastante bien para listas cortas de resultados sin ninguna configuración, hay algunos parámetros que se pueden ajustar para ofrecer los mejores resultados. Consulta la documentación para conocer estos temas en detalle.

Implementación de RRF

Para permitir una búsqueda combinada que devuelva resultados tanto de métodos de búsqueda en texto completo como vectoriales, es necesario recuperar la lógica de búsqueda en texto completo empleada anteriormente en la función handle_search() . Para implementar una estrategia de búsqueda híbrida, el método search() debe recibir tanto el argumento query como el knn , cada uno solicitando una cotización separada. También se agrega la sección rank mostrada arriba para combinar los resultados en una única lista clasificada.

Aquí tienes la versión de handle_search() que implementa la estrategia de búsqueda híbrida:

Con esta versión se combinan los mejores resultados de cada método de búsqueda. Haz clic aquí para revisar la solicitud completa con estos cambios.

¿Estás listo para crear experiencias de búsqueda de última generación?

No se logra una búsqueda suficientemente avanzada con los esfuerzos de uno. Elasticsearch está impulsado por científicos de datos, operaciones de ML, ingenieros y muchos más que son tan apasionados por la búsqueda como tú. Conectemos y trabajemos juntos para crear la experiencia mágica de búsqueda que te dará los resultados que deseas.

Pruébalo tú mismo