Hemos migrado desde una base de datos de postgres que usaba vectores y usaba @@ to_tsquery(:searchQuery) para realizar consultas. Ahora estamos usando ElasticSearch y nos está costando obtener la misma precisión que vimos con la búsqueda vectorial de Postgres.
Por ejemplo, tenemos la frase "deadpool vs carnage" como valor para un campo de título en un documento y nos gustaría que este documento volviera al realizar una búsqueda con un valor de consulta de "dead carn".
Al usar postgres esto no fue un problema. Pero con ElasticSearch no puedo hacer que esto regrese correctamente.
Probé diferentes variaciones de todas las consultas de coincidencia y no puedo hacer que esto funcione. Cualquier ayuda sería muy apreciada
Solución del problema
Elasticsearch es un sistema tan robusto que muchas veces, como con muchas cosas, es fácil pasar por alto la solución más simple.
Terminé usando la query_string
búsqueda con comodines en la cadena para lograr esto.
Puede pasar un valor de consulta de dead* carn*
.
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html
No hay comentarios.:
Publicar un comentario