2016-03-10 4 views
1

Я столкнулся с раздражающей проблемой с моим ElasticSearch (версия 1.5.2): запросы немедленно возвращают время ожидания (когда я использовал запросы Python) или"curl: (52) Empty reply from server"/timeout при запросе ElastiscSearch

локон: (52) Пустой ответ от сервера

, когда я использовал завиток.

Это произошло только тогда, когда ожидаемый выход был большим. Когда я отправил аналогичный (но меньший) запрос, он вернулся просто отлично.

что происходит здесь? и как я могу это преодолеть?

ответ

0

Эта проблема была вызвана нехваткой памяти Elastic: она просто не может хранить все документы в памяти. К сожалению, для этого случая нет явного кода ошибки.

Есть куча вариантов, чтобы обойти эту проблему (помимо добавления больше памяти):

  1. Вы можете сказать, эластичным, чтобы не присоединять источник, указав «_source ложь». Затем результаты будут просто перечислять соответствующие документы (и вам нужно будет их восстановить).
  2. Вы можете использовать «source filtering», чтобы вернуть только часть документов, если вам не нужно все это - это сработало для меня.
  3. Вы также можете просто разделить свой запрос на кучу подзапросов. не очень, но это будет трюк.
Смежные вопросы