【问题标题】:Elasticsearch NEST client libraryElasticsearch NEST 客户端库
【发布时间】:2017-12-22 16:19:39
【问题描述】:

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

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

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

}

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

我们如何使用 NEST 库实现这一目标

非常感谢

【问题讨论】:

    标签: elasticsearch 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);
    

    【讨论】:

      猜你喜欢
      • 2020-12-22
      • 2015-02-19
      • 1970-01-01
      • 2021-07-01
      • 2013-03-31
      • 2016-07-27
      • 2020-10-27
      • 2012-09-23
      • 2014-10-14
      相关资源
      最近更新 更多