Connection Timeout with Elasticsearch

前端 未结 9 2044
刺人心
刺人心 2020-12-04 21:01
from datetime import datetime
from elasticsearch import Elasticsearch
es = Elasticsearch()

doc = {
    \'author\': \'kimchy\',
    \'text\': \'Elasticsearch: cool.          


        
9条回答
  •  失恋的感觉
    2020-12-04 21:19

    Two options that help:

    1: increase the timeout

    Setting a timeout solved this problem for me. Note that newer versions need a unit, e.g. timeout="60s":

    es.index(index=index_name, doc_type="domains", id=domain.id, body=body, timeout="60s")
    

    Without a unit, for example by setting timeout=60, you'll get

    elasticsearch.exceptions.RequestError: RequestError(400, 'illegal_argument_exception', 'failed to parse setting [timeout] with value [60] as a time value: unit is missing or unrecognized')
    

    2: reduce text length

    It also helps to reduce the text length, e.g. by cutting of long texts, so elastic can store the text faster which will avoid timeouts, too:

    es.index(index=index_name, doc_type="domains", id=domain.id, body=text[:5000], timeout="60s")
    

提交回复
热议问题