Elasticsearch实时GET支持

时间:2016-08-05 18:37:57

标签: elasticsearch

当我在ES中索引文档时,我试图在刷新间隔内访问同一文档并且搜索没有返回结果。是否有实时GET支持,无论"刷新率如何,都可以获得一次索引的文档。的索引。我尝试将refresh_interval减少到500毫秒而不是1秒,但是我的搜索查询甚至在500毫秒之前就已经发生了,并且进一步减少它不是一个好主意。

1 个答案:

答案 0 :(得分:4)

索引文档后,您可以立即获取它而无需等待刷新间隔。

GET API is real-time

因此,如果您将这样的新文档编入索引

POST index/type/1
{ "name": "John Doe" }

您无需等待

即可立即获取
GET index/type/1

但是,如果搜索,则需要等待刷新间隔传递,以便检索新文档或调用刷新API。

为了完整起见,值得一提的是,在建立索引时,您还可以选择refreshing the shards immediately,通过传递refresh=true参数,如下所示。但请注意,这可能会对性能产生不良影响,因此应谨慎使用。

POST index/type/1?refresh=true
{ "name": "John Doe" }

另外值得注意的是,在ES 5中,您可以选择在从创建调用返回之前告知ES wait for a refresh

POST index/type/1?refresh=wait_for
{ "name": "John Doe" }

在这种情况下,一旦POST请求返回,您就可以保证新文档在下一次搜索调用中可用。