2017-07-18 120 views
0

我们试图做的是指数一堆文件分批即Elasticsearch NEST客户端库

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

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

} 

我们想STOP Elasticsearch REFRESHING索引,直到我们完成索引的所有批次。然后启用并刷新索引。

我们怎样才能与NEST库实现这一

非常感谢

回答

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); 
相关问题