2017-07-18 121 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); 
相關問題