在弹性搜索中进行批量插入时,数据会重复

时间:2018-05-29 11:17:20

标签: elasticsearch elasticsearch-plugin elasticsearch-5

我们正在尝试在Bulk描述符中添加对象,当描述符计数达到500时,我们将数据推送到ES。但数据正在崩溃。例如。正确推送第一文档数据,而不是按下第二文档数据插入第一文档数据。我们正在为每个文档创建唯一ID,但仍然存在错误。我们正在为并发调用创建锁定对象。 任何帮助将不胜感激。提前谢谢。

代码:

public static void ESSupplierStatsDataUpload(SupplierStats ObjSupplierStats)
{
    try
    {
        if (ElasticSearchCredentials.EnableElasticSearch)
        {
            lock (_object)
            {
                //Checks the count in descriptor and doing bulk upload
                descriptor.Index(op => op.Index("mystiflysupplierstats")
                    .Document(ObjSupplierStats));
                var count = (descriptor as IBulkRequest).Operations.Count;
                if (count == 500)
                {
                    var result = client.Bulk(descriptor );
                    descriptor = new BulkDescriptor();
                }
            }
        }
    }
    catch (Exception e)
    {
        //Logging exception
        throw;
    }
}

0 个答案:

没有答案