#elasticsearch #elasticsearch-query
#elasticsearch #elasticsearch-запрос
Вопрос:
Я пытаюсь получить все документы в сегменте.
Этот запрос возвращает все документы, которые у меня есть в кластере elasticsearch, а не только документы в сегменте с идентификатором: 254b2796-9be4-4704-b756-6fe2e3e80f36
GET /mortgages/_search?routing=254b2796-9be4-4704-b756-6fe2e3e80f36
С другой стороны, этот запрос возвращает только документы в сегменте 254b2796-9be4-4704-b756-6fe2e3e80f36
GET /mortgages/_search
{
"query": {
"terms": {
"_routing": [ "254b2796-9be4-4704-b756-6fe2e3e80f36" ]
}
}
}
Из документации (https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-routing-field.html ), кажется, что оба запроса должны быть действительными. Почему первый запрос не работает, а второй запрос работает?
Спасибо,
Ответ №1:
Попробуйте заменить метод HTTP первого запроса с GET
на POST
на, есть несколько проблем с API ES, из-за которых он не работает с GET
методом с параметром запроса, вместо этого работает тело запроса в GET
запросе.
Комментарии:
1. Результат обоих запросов был точно таким же для GET и POST
2. @AshishAgarwal, странно, позвольте мне посмотреть, смогу ли я найти что-нибудь из исходного кода
3. @AshishAgarwal, извините, я не смог потратить на это много времени, просто хотел узнать, нашли ли вы что-то полезное, чтобы я мог над этим поработать