При дублировании данных в упругом поиске данные дублируются - PullRequest
0 голосов
/ 29 мая 2018

Мы пытаемся добавить объект в дескриптор Bulk, когда количество дескрипторов достигает 500, мы отправляем данные в ES.Но данные свернуты.Например.Данные 1-го документа передаются правильно, вместо нажатия на данные 2-го документа он вставляет данные 1-го документа.Мы создаем уникальный идентификатор для каждого документа, но ошибка все еще существует.Мы создаем объект блокировки для вызова параллелизма.Любая помощь будет оценена.Заранее спасибо.

Код:

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;
    }
}
...