Получение всех документов в сегменте эластичного поиска

#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, извините, я не смог потратить на это много времени, просто хотел узнать, нашли ли вы что-то полезное, чтобы я мог над этим поработать