在Index, Update, Delete, and Bulk 等方法后面是可以添加?refresh参数的。
针对refresh的值进行说明
一、 空字符串或者true
他会立马刷新相关的分配,也就是本次数据存储的分片,所以这个影响的结果是可以被立马感知的,但是可行而止,这种情况是极其消耗性能的.
二、 wait_for
首先es有一个参数叫index.refresh_interval, 这个是es自动刷新的间隔
如果配置wait_for,那么就是等待es自动刷新,然后可见,而且这个刷新操作也可以手动调用api去完成
三、 false
这个是默认值,不会采取任务动作,在api请求完成后,等待某个时间点后才会可见
四、总结
除非你有特殊的要求,否则千万别用true。
如果有多个改变,可以想到的时候,wait_for就是true的 批量版本,所以效率更高,但是也不建议批量的发送wait_for请求,因为自动刷新也是有上限的,默认1000个,如果太多wait_for就会转变成 true。 建议用bulk 然后加wait_for