我们要做的是批量索引一堆文件,即
foreach (var batch in props.ChunkBy(100))
{
var result = await client.IndexManyAsync<Type>(batch, indexName);
}
我们希望停止 Elasticsearch 刷新索引,直到我们完成所有批次的索引编制。然后启用并刷新索引。
我们如何通过NEST库实现这一目标
非常感谢
答案 0 :(得分:1)
您可以通过将间隔值设置为-1来有效地禁用索引刷新。下面是一个代码示例,演示如何使用Nest客户端将刷新间隔设置为-1。然后,您可以执行批量操作,然后将刷新间隔设置回默认值1秒。
//Set Index Refresh Interval to -1, essentially disabling the refresh
var updateDisableIndexRefresh = new UpdateIndexSettingsRequest();
updateDisableIndexRefresh.IndexSettings.RefreshInterval = Time.MinusOne;
client.UpdateIndexSettings(updateDisableIndexRefresh);
//Do your bulk operations here...
//Reset the Index Refresh Interval back to 1 second, the default setting.
var updateEnableIndexRefresh = new UpdateIndexSettingsRequest();
updateEnableIndexRefresh.IndexSettings.RefreshInterval = new Time(1, TimeUnit.Second);
client.UpdateIndexSettings(updateEnableIndexRefresh);