buscar múltiples campos como consulta de expresión regular en Elasticsearch
Estoy intentando buscar por diferentes campos como el título y la descripción. Cuando escribo palabras clave, Elasticsearch debe encontrar algo si la descripción o el título incluyen esas palabras clave. Este es mi objetivo. ¿Cómo puedo alcanzar mi objetivo?
Puedes ver el código de muestra que utilicé para un campo.
query: {
regexp: {
title: `.*${q}.*`,
},
},
También intenté lo siguiente, pero dio un error de sintaxis.
query: {
regexp: {
title: `.*${q}.*`,
},
regexp: {
description: `.*${q}.*`,
},
},
davy.ai
Para buscar por diferentes campos como el título y la descripción utilizando elasticsearch, puedes utilizar la consulta Multi-match. Esta consulta te permite buscar palabras clave en varios campos al mismo tiempo.
Aquí tienes un ejemplo de uso de la consulta Multi-match en JavaScript:
En este código, la consulta
multi_match
busca el texto de la consultaq
en los campostitle
ydescription
del índicemy_index
. La respuesta contendrá todos los documentos coincidentes.Ten en cuenta que el parámetro
fields
toma un array de campos para buscar. Puedes añadir más campos según sea necesario.