Мне нужно выполнить запрос Elastic Search с помощью Ajax. Я пытаюсь выполнить поиск определенного имени категории и вернуть список имен, связанных с этой категорией. Структура в Elastic Search состоит в том, что каждый _source имеет поля имени (название категории) и поля элементов. У него также есть name.raw, чтобы я мог искать по точному имени.Создание отфильтрованного запроса на фильтрацию в Ajax
Это моя просьба:
var query = {
query: {
filtered: {
filter: {
term: { "name.raw": category }
}
}
}
}
$.ajax({
url: "http://192.168.0.240:9200/dropdowns/category/_search",
type: 'post',
dataType: 'json',
success: function(data) {
alert("Success");
},
error: function(data) {
// should be only one item in hits
$(data.hits.hits).each(function(index, hit) {
alert(hit._source.items);
});
},
data: query
});
На данный момент я пытаюсь просто заставить его работать достаточно, чтобы предупредить меня, чтобы элементы в хит. Я получаю ошибку 400 Bad Request. Что случилось с моим призывом Ajax?
Не должен ли ваш тип запроса ajax быть 'get'? –
Я не думаю, что что-то не так с вашим звонком AJAX. Elasticsearch возвращает 400, если ваш запрос плох. Вы должны смотреть на «данные» в своей функции ошибок для проблемы с вашим запросом. Вероятно, это связано с неправильным отображением, поскольку вы пытаетесь выполнить вложенный поиск. Кроме того, 'data.hits.hits' будет успешным. Ошибка никогда не будет возвращать хиты. –
Правильно, так что случилось с запросом? –