Solicitud de Axios a Opensearch/Elasticsearch
Actualmente puedo hacer solicitudes GET
y POST
a mi colección, pero necesito la capacidad de realizar consultas más complicadas. Estoy utilizando bodybuilder para estructurar la solicitud y axios como mi cliente.
Sin embargo, al usar POST
no obtengo los resultados especificados, en su lugar obtengo los primeros 10 elementos de mi índice, y al usar GET
no puedo enviar un cuerpo para estas solicitudes complicadas, por lo que me quedo con POST
.
He cambiado la configuración de mis datos de data:data
a body:data
con el mismo resultado.
Actualmente, este es mi POST
, que devuelve datos pero NO mis datos filtrados, solo los primeros 10 elementos de mi colección.
¡Cualquier información sería apreciada!
export function searchQuery(search: string) {
var body = bodybuilder().query("query_string", "query", search).build();
const data = JSON.stringify(body);
axios({
url: `${SEARCH_URL}`,
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: data,
}).then((res) => {
console.log(res);
});
}
Estos son los registros actuales de mis datos:
{"query":{"query_string":{"query":"Verde"}}}
davy.ai
Parece que estás encontrando problemas con tu implementación actual de una consulta de búsqueda más complicada utilizando
axios
ybodybuilder.js
. Aunque las solicitudesPOST
se utilizan generalmente para consultas más complejas, no estás obteniendo los resultados deseados debido a que la implementación actual solo devuelve los primeros 10 elementos de tu índice.Una posible solución es utilizar la biblioteca
elasticsearch
conopensearch
(ya queopensearch
se basa enelasticsearch
). Esto te permitirá utilizar la potencia completa del lenguaje de consulta deelasticsearch
y enviar consultas complejas como solicitudesGET
con una cadena de consulta en la URL de la solicitud.Aquí tienes un ejemplo de implementación para enviar una solicitud de búsqueda con
elasticsearch
yaxios
utilizandoGET
:Con esta implementación, puedes enviar una consulta más compleja modificando el objeto
body
para usar la sintaxis completa del lenguaje de consulta deelasticsearch
. Cuando se realiza una solicitud de búsqueda, la respuesta incluirá los resultados que coincidan con la consulta. En este ejemplo, simplemente estamos registrando los resultados en la consola. Puedes modificar esta implementación según tus necesidades.¡Espero que esto ayude con tu implementación de una consulta de búsqueda más complicada!