将文档上传到ES之前需要多长时间才能正确搜索?

问题描述 投票:0回答:1

我正在使用ES来检索数据,我在ES中更改并更新,然后执行相同的搜索查询 - 看起来我并不总是将更新的文档重新下来并且必须等待一两秒钟。

使用以下代码:

esClient.Update<TESDocModel, TESDocModel>(new DocumentPath<TESDocModel>(docId), u => u.Index(index).Doc(toUpdate).DocAsUpsert(true));

这是正确的行为还是应该在upsertdocument操作完成后立即搜索文档?

c# elasticsearch nest
1个回答
2
投票

这取决于何时执行分片上的刷新操作。索引文档时,无法立即搜索。要进行可搜索的分片上的刷新操作。在幕后写入并打开一个新段,使这些段中包含的文档可以搜索。

默认情况下,弹性每秒刷新一次shard。这就是为什么据说Elasticsearch有近乎实时的搜索。

刷新间隔可以通过索引设置参数refresh_interval来控制。例如,下面将刷新间隔更改为5秒,并且索引的任何新文档最多需要5秒才能进行搜索。

PUT /my_index
{
  "settings": {
    "refresh_interval": "5s" 
  }
}

要了解更多信息,请阅读elasticsearch near real time search

© www.soinside.com 2019 - 2024. All rights reserved.