Рассмотрим следующий пример:
NUMBER_KEYWORDS = 3000
es = Elasticsearch("127.0.0.1",port=9200,timeout=120,index="example_index",http_auth=AUTH)
query = {'query': {"bool": { "should": [{"match": {"value.keyword": v}} for v in ["keyword" for i in range(NUMBER_KEYWORDS)]]}}}
es.search(index="example_index", body=query, size=10000)['hits']['hits']
это не так с исключением:
RequestError(400, 'search_phase_execution_exception', 'failed to create query: [...]
, тогда как не произойдет, если для ключевого слова NUMBER_KEYWORDS
будет задано меньшее число (скажем 1000).
Каков хороший способ обработки очень больших строк запроса в интерфейсе Python Elasticsearch?