我正在尋找可以發出異步請求的ElasticSearch Python客戶端。例如,我想編寫此代碼,是否有支持異步請求的Python ElasticSearch客戶端?
query1_future = es.search('/foobar', query1_json)
query2_future = es.search('/baz', query2_json) # Submit query 2 right after query 1, don't wait for its response
query1 = query1_future.get()
query2 = query2_future.get()
不過,我沒有看到任何的客戶端(PyES,或official client,例如)支持這一點。此外,我熟悉的兩種方法將請求邏輯與響應處理邏輯耦合起來,因此自己修改它們似乎很困難。也許一個足夠的臨時解決方案是使用異步版本的請求grequests?另外,值得指出的是ElasticSearch的_msearch
可能是一個更好的選擇,但是對於真實世界的應用程序來說,它需要一些代碼重組。