Я успешно использовал один и тот же код для другого хоста es, и он работал нормально, однако, когда я пытаюсь использовать его на другом хосте es, он дает мне ConnectionTimeout: ConnectionTimeout caused by - ReadTimeout(HTTPSConnectionPool(host='search-production-fjexfhlafkqulrsxn5gkvzwnia.ap-northeast-2.es.amazonaws.com', port=443): Read timed out. (read timeout=10))
Я установил параметр timeout
внутри каждого запроса при создании множественного поиска, я прочитал https://elasticsearch-py.readthedocs.io/en/master/api.html и документацию по мультипоиску, однако я не могу найти какой-либо параметр времени ожидания.
Я предполагаю, что мне нужно передать параметр тайм-аута при создании клиента es или при создании мультипоиска. Любая помощь?
мой код выглядит следующим образом: awsauth = AWS4Auth('AKIAIALITIB7ZYLX3HFA', 'QWCb/I40T1UHfmPHm79mN3VU2ySwExhHh0PO/ri1', регион, сервис)
es = Elasticsearch(
hosts=[{'host': es_host, 'port': 443}],
http_auth=awsauth,
use_ssl=True,
verify_certs=True,
connection_class=RequestsHttpConnection
)
def create_msearch(dt):
msearch = []
for name in polygons:
coordinates = polygons[name]
points = coord_list_to_dict(coordinates)
msearch.append({})
msearch.append({"_source":["date", "host","request_1","request_2", "location","status"],
"query":
{"bool" :
{"must": [{"match": {"request_3": "list"}},
{"range":
{"date":
{"format":"strict_date_optional_time",
"gte":f"{dt}T05:00:00.000Z",
"lte":f"{dt}T10:00:00.000Z"}}}],
"filter" : {
"geo_polygon" : {
"location" : {
"points" : points}}}}},
"size":"10000","timeout":"2h"})
return msearch
response = es.msearch(index="index", body=create_msearch(date))
Если это обычный поисковый запрос, я могу просто передать параметр «тайм-аут», как я делал для каждого запроса внутри запроса msearch.
Однако в документации https://elasticsearch-py.readthedocs.io/en/master/api.html#elasticsearch нет параметра, отвечающего за время ожидания в msearch.
В соответствии с Время ожидания соединения с Elasticsearch что-то говорит об изменении номера порта, я пробовал оба 443, 9200 и оба не работают.
РЕДАКТИРОВАТЬ: как только я запускаю запрос, поскольку данных для поиска слишком много, он использует 99% процессора, поэтому для завершения поиска требуется некоторое время. Это работает, когда я запускаю только два или три запроса.