Запрос Axios к Opensearch/Elasticsearch
В настоящее время я могу и для моей коллекции, но мне нужна возможность для более сложных запросов, я использую bodybuilder для структурирования запроса и аксиом в качестве моего клиента.
Однако использование не возвращает мои указанные результаты, а только первые 10 элементов в моем индексе и использование
GET
Я не могу отправить тело для этих сложных запросов, оставляя меня с .
Я переключил настройку своих данных с
data:data
к
body:data
с тем же результатом.
На данный момент это мой
POST
который снова возвращает данные, но НЕ мои отфильтрованные данные, а только первые 10 элементов моей коллекции.
Любое понимание будет оценено!
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);
});
}
Это мой текущий журнал данных:
{"query":{"query_string":{"query":"Green"}}}
1 ответ
Основываясь на комментариях к вопросу выше, вы получаете только первые 10 элементов в своей коллекции, когда запускаете запрос напрямую к elasticsearch.
Это связано с тем, что elasticsearch по умолчанию возвращает только 10 документов в результатах поиска, если нетsize
param включается в поисковый запрос.
Если вы хотите получить более 10 результатов, вам нужно изменить свой поисковый запрос как
{
"size": 20, // change this according to your requirement
"query": {
"query_string": {
"query": "Green"
}
}
}