在我的服务器上,我使用批量API更新了一些文档:
{"update":{"_type":"post","_retry_on_conflict":"3","_index":"xxxx","_id":"yyyy"}}
{"doc":{"sentiment":"positive","mood":1,"upgrade":true}}
得到响应后,我使用搜索对同一文档提出新的请求:
{"query":{"filtered":{"filter":{"ids":{"values":["yyyy"]}}}}}
但是返回的文档没有更新值(仍然具有旧值)。如果我等待一段时间,则会显示更新的值。我认为发生这种情况是因为批量是异步的吗?有没有什么办法解决这一问题?
最佳答案
您可以使用refresh api强制进行索引更新,甚至可以在批量命令的末尾添加?refresh=true
。但是通常不推荐。另外,如果有多个节点,则可能需要使用synced flush。
关于asynchronous - Elasticsearch批量更新,然后进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34297936/