multi_match:
Este tipo de consulta te permite realizar una búsqueda en múltiples campos. Es beneficioso cuando quieres buscar un término, por ejemplo, tanto en el título como en la descripción de los documentos.
Parámetros dentro de multi_match:
query: Aquí se encuentra el término/string de búsqueda real. La query dada (la variable del argumento de la función) se buscará en todos los campos especificados.
fields: Un arreglo de nombres de campos en los que se realizará la búsqueda. En este caso, la búsqueda buscará la query tanto en los campos “title” (título) como “description” (descripción) de los documentos.
fuzziness: Esto permite coincidencias aproximadas. Una “fuzziness” de 3 significa que las palabras en los campos pueden tener hasta 3 ediciones (inserciones, eliminaciones, sustituciones o transposiciones) de distancia del término query y aún ser consideradas una coincidencia. Esto es útil para captar errores tipográficos o ligeras variaciones en la escritura.
cutoff_frequency: Este es un parámetro específico para las consultas fuzzy y multi_match al usar el tipo de coincidencia fuzzy. Te permite excluir términos que tienen una frecuencia de documento más alta que el umbral proporcionado. Esto puede ser útil para filtrar palabras que ocurren comúnmente. El valor 0.0001 significa que se ignorarán los términos que aparecen en más del 0,01% de los documentos.
La searchQuery resultante se codifica luego en JSON y se envía al servidor Elasticsearch, donde se ejecutará y coincidirá con los documentos indexados.
Recuerda que el DSL de Consulta de Elasticsearch ofrece una amplia variedad de opciones, y este es solo un tipo de consulta específico. Puedes adaptar tus necesidades de búsqueda combinando varios tipos de consultas y opciones proporcionadas por Elasticsearch.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?