es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo obtener posiciones en Elasticsearch a partir de palabras clave de búsqueda parciales?

¿Hay alguna forma de cumplir con el siguiente escenario?

Texto de ejemplo: “Quiero comer”

Intentaré hacer coincidir “ant to” que se corresponde parcialmente con la frase “quiero”

Lo que quiero es lo siguiente:

Mi resultado de búsqueda ideal sería (posiciones tokenizadas en espacio)
– startToken = 1 (“quiero” está en el token 1)
– startChar = 1 (“a” está en el carácter 1 con el token de índice 1)
– endToken = 2
– endChar = 1

Pero parece que no es nativo en Elasticsearch, ¿puede Elasticsearch darme al menos el resultado como sigue? (posiciones de texto completas, posición de índice basada en cero)
– startChar = 3
– endChar = 8

Después de buscar en Internet, obtuve algunas pistas para usar el resaltado, pero después de intentarlo, falló en la búsqueda parcial.

¿Puedes darme algunas mejores prácticas para este escenario en Elasticsearch?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Hay varias formas de cumplir este escenario en Elasticsearch. Una solución posible es utilizar el tokenizador Ngram para dividir el texto en n-gramos más pequeños e indexarlos. Esto permitirá coincidencias parciales incluso si el término de búsqueda no coincide exactamente con el texto indexado.

    Para lograr el resultado de búsqueda deseado con posiciones espaciales tokenizadas, el usuario puede utilizar la consulta de resaltado para recuperar las coincidencias y sus posiciones en el texto original. Las posiciones de inicio y fin se pueden calcular en función de las posiciones espaciales tokenizadas.

    Otro enfoque es utilizar el filtro Shingle para generar combinaciones de palabras adyacentes e indexarlas como un solo token. Esto permitirá una mayor flexibilidad al buscar frases parciales y se puede combinar con el sugeridor de frases para proporcionar sugerencias de frases similares.

    En resumen, las mejores prácticas para este escenario en Elasticsearch implican utilizar técnicas de tokenización y filtrado adecuadas para indexar el texto, y luego utilizar las técnicas de búsqueda y recuperación apropiadas para proporcionar resultados de búsqueda relevantes según la consulta del usuario.

Comments are closed.