当我在ES中为文档建立索引时,我试图在刷新间隔内访问同一文档,并且搜索未返回结果。是否有Realtime GET支持,该支持允许对文档建立一次索引,而不管索引的“刷新率”如何。我尝试将refresh_interval减小为500ms而不是1s,但是我的搜索查询甚至在500ms之前就发生了,进一步减小它不是一个好主意。
为文档建立索引后,您可以立即获取它,而无需等待刷新间隔。
因此,如果您像这样索引新文档
POST index/type/1
{ "name": "John Doe" }
Run Code Online (Sandbox Code Playgroud)
您无需等待使用即可立即获得它
GET index/type/1
Run Code Online (Sandbox Code Playgroud)
但是,如果您进行搜索,则需要等待刷新间隔过去才能检索新文档或调用刷新API。
为了完整起见,值得一提的是,在建立索引时,您还可以选择通过传递如下所示的参数立即刷新分片refresh=true
。但是请注意,这可能会对性能造成不良影响,因此应谨慎使用。
POST index/type/1?refresh=true
{ "name": "John Doe" }
Run Code Online (Sandbox Code Playgroud)
同样值得注意的是,在ES 5中,您可以选择让ES 等待刷新,然后再从create调用返回:
POST index/type/1?refresh=wait_for
{ "name": "John Doe" }
Run Code Online (Sandbox Code Playgroud)
在这种情况下,一旦POST请求返回,就可以确保在下一个搜索调用中可以使用新文档。
归档时间: |
|
查看次数: |
528 次 |
最近记录: |