写入可以先成功,搜索随后才看得到。Refresh 是让最近的索引变更对搜索可见的步骤。
跟踪刚保存的商品
text
Write succeeds -> Search may still miss it -> Refresh -> Search can see it
这个间隔解释了为什么保存后立即搜索会产生意外。按文档 ID 进行实时 GET 可能已经取到文档,而搜索仍使用较早的视图。
如果下一次搜索必须看到本次写入
在 Kibana Dev Tools 中,针对已有且映射合适的索引:
http
PUT /products/_doc/42?refresh=wait_for
{"title":"Blue Shoes"}
等待这个请求完成后再搜索。wait_for 等待一次使本操作可见的 refresh;通常不会为每次写入强制立即 refresh。搜索仍必须指向正确索引,并且条件要匹配文档。
如果允许短暂延迟
使用正常的 refresh 周期。每次单独写入后强制 refresh 会增加工作量。尽可能批量处理相关写入,根据实际新鲜度要求测量,不要假定所有部署都有同样的延迟。Refresh 控制搜索可见性,不是备份机制。
