1. ホーム
  2. elasticsearch

[解決済み] ElasticsearchでRead timed outを修正する方法

2022-02-08 16:14:11

質問

Elasticsearch-1.1.0を使って、ツイートのインデックスを作成しました。 インデックスの作成は問題ありません。 その後、バージョンアップをしました。今はElasticsearch-1.3.2を使っていますが、このメッセージがランダムに表示されます。

Exception happened: Error raised when there was an exception while talking to ES.
ConnectionError(HTTPConnectionPool(host='127.0.0.1', port=8001): Read timed out. (read timeout=10)) caused by: ReadTimeoutError(HTTPConnectionPool(host='127.0.0.1', port=8001): Read timed out. (read timeout=10)).

ランダム性のあるスナップショット。

Happened --33s-- Happened --27s-- Happened --22s-- Happened --10s-- Happened --39s-- Happened --25s-- Happened --36s-- Happened --38s-- Happened --19s-- Happened --09s-- Happened --33s-- Happened --16s-- Happened 

--XXs-- = after XX seconds

を修正する方法について、どなたかご指摘ください。 Read timed out という問題があります。

ありがとうございました。

解決方法は?

このエラーは、お使いのクライアントに関連している可能性があるため、直接お答えすることは困難です。しかし、解決策としては、次のようなものが考えられます。

1.ESクライアントの作成時にtimeoutパラメータを渡して、デフォルトのタイムアウトをグローバルに増やす。Pythonでの例

es = Elasticsearch(timeout=30)

2.クライアントからの1回のリクエストに対するタイムアウトを設定します。以下のElasticsearch Pythonのドキュメントから引用しています。

# only wait for 1 second, regardless of the client's default
es.cluster.health(wait_for_status='yellow', request_timeout=1)

上記により、クラスタが応答するための余分な時間を与えることができます。