我正在使用Elastic 5.1.2版本。我正在使用Elastic java Restclient从Elastic搜索中发布和查询文档。
POST操作后立即使用GET操作时,我没有得到准确的文档计数。如果我在POST和GET之间睡眠> 1秒,则GET操作能够给出准确的计数。
我的操作流程是:1)使用POST操作过帐新事务(文档)。2)使用GET操作检索文档总数。这是在POST之后。
我认为,Elastic需要时间来更新索引。这是Elasticsearch还是我的任何设置有问题吗?请帮忙
这是正常现象!当您为新数据建立索引时,它不会立即可用,但会在下一次刷新后进行,默认情况下每秒刷新一次。
如果那困扰您,您有几种选择:
/_refresh
?refresh=true
?refresh=wait_for
index.refresh_interval
只是知道,从性能的角度来看,实现所需目标的最不积极的方法是3,即ES 5中引入的新参数,该参数不会强制刷新索引,只有在新索引文档可用时才会返回搜索。过于频繁地刷新(1、2和3)可能会降低性能。