1
当我在ES中索引文档时,我试图在刷新间隔内通过同一文档并且搜索没有返回结果。是否有实时GET支持,无论索引的“刷新率”如何,都可以获取索引后的文档。我尝试将refresh_interval减少到500ms而不是1s,但是我的搜索查询甚至在500毫秒之前就发生了,并且将它进一步降低并不是一个好主意。Elasticsearch实时GET支持
当我在ES中索引文档时,我试图在刷新间隔内通过同一文档并且搜索没有返回结果。是否有实时GET支持,无论索引的“刷新率”如何,都可以获取索引后的文档。我尝试将refresh_interval减少到500ms而不是1s,但是我的搜索查询甚至在500毫秒之前就发生了,并且将它进一步降低并不是一个好主意。Elasticsearch实时GET支持
索引文档后,您可以立即获取它,而不必等待刷新间隔。
所以,如果你的索引这样
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请求返回,您可以保证新文档在下一次搜索调用中可用。
完美!这工作。谢谢@Val –
对于搜索,您可以使用刷新API强制刷新:https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-refresh.html – Pandawan