Elasticsearch NEST客户端库

时间:2017-07-18 01:11:56

标签: elasticsearch nest

我们要做的是批量索引一堆文件,即

foreach (var batch in props.ChunkBy(100))
{    

    var result = await client.IndexManyAsync<Type>(batch, indexName);

}

我们希望停止 Elasticsearch 刷新索引,直到我们完成所有批次的索引编制。然后启用并刷新索引。

我们如何通过NEST库实现这一目标

非常感谢

1 个答案:

答案 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);