我使用ES检索数据,这是我改变和更新早在ES接着做同样的搜索查询 - 它看起来像我并不总是得到更新的文档回落,并有等待一两秒钟。
使用下面的代码:
esClient.Update<TESDocModel, TESDocModel>(new DocumentPath<TESDocModel>(docId), u => u.Index(index).Doc(toUpdate).DocAsUpsert(true));
这是正确的行为或者出现文档立即搜索后upsertdocument操作完成?
这取决于当执行的碎片刷新行动。 当文档被索引立即不可搜索。 为了使被执行在碎片搜索的刷新操作。 这个场景背后写,并打开一个新的细分使得包含在这些细分市场可搜索的文件。
默认情况下,弹性刷新分片的每一秒。 这就是为什么说,Elasticsearch有近实时搜索。
刷新间隔可以通过索引设置PARAM来控制refresh_interval
。 对于如下面将刷新间隔更改为5秒,索引将在最多需要5秒的任何新的文件进行搜索。
PUT /my_index
{
"settings": {
"refresh_interval": "5s"
}
}
要了解更多关于它了解elasticsearch 近乎实时搜索 。
文章来源: How long does it take from getting a document upserted into ES before it can be searched against correctly?