一尘不染

NEST Elasticsearch Reindex示例

elasticsearch

我的目标是为具有1000万个分片的索引重新编制索引,以更改字段映射以促进重要术语分析。

我的问题是我在使用NEST库执行重新索引时遇到了麻烦,并且文档非常有限。如果可能,我需要使用以下示例:

http://nest.azurewebsites.net/nest/search/scroll.html

http://nest.azurewebsites.net/nest/core/bulk.html


阅读 353

收藏
2020-06-22

共1个答案

一尘不染

Reindex尽管缺少文档,但是NEST提供了一种可以使用的不错的方法。我已使用此临时WinForms代码以非常粗糙的方式使用了它。

    private ElasticClient client;
    private double count;

    private void reindex_Completed()
    {
        MessageBox.Show("Done!");
    }

    private void reindex_Next(IReindexResponse<object> obj)
    {
        count += obj.BulkResponse.Items.Count();
        var progress = 100 * count / (double)obj.SearchResponse.Total;
        progressBar1.Value = (int)progress;
    }

    private void reindex_Error(Exception ex)
    {
        MessageBox.Show(ex.ToString());
    }

    private void button1_Click(object sender, EventArgs e)
    {
        count = 0;

        var reindex = client.Reindex<object>(r => r.FromIndex(fromIndex.Text).NewIndexName(toIndex.Text).Scroll("10s"));

        var o = new ReindexObserver<object>(onError: reindex_Error, onNext: reindex_Next, completed: reindex_Completed);
        reindex.Subscribe(o);
    }

而且我刚刚找到了向我展示如何操作的博客文章:http : //thomasardal.com/elasticsearch-migrations-with-c-and-
nest/

2020-06-22