Полученное несоответствие количества документов после успешных пакетов увеличено до azure (когнитивный поиск) - PullRequest
0 голосов
/ 05 марта 2020

Получение несоответствия количества документов после того, как количество успешных партий увеличено до azure Мы пробовали с размером пакета 32000 для 392700 unique documents, и все партии были успешно обработаны. Кроме того, мы получили успех для каждой отдельной записи партиями от azure. Но когда мы проверили на портале azure, мы увидели, что количество документов там отличается.

Код

public virtual void PostBulkAssortmentDocuments(List<IndexAction<AzureSearchItem>> actions, string language = null)
{
    if (actions.Count() == 0)
        return;

    var batch = IndexBatch.New(actions);
    try
    {
        string batchID = Guid.NewGuid().ToString();
        DateTime startProcessTime = DateTime.Now;
        this.WriteToFile("language => " + language);
        this.WriteToFile("Batch ID =>" + batchID);
        this.WriteToFile("Process start for batch " + startProcessTime);
        var data = GetIndexClient(IndexName).Documents.Index(batch);
        this.WriteToFile("Process end for batch " + DateTime.Now);
        this.WriteToFile("Total Process Time " + ((DateTime.Now - startProcessTime).TotalSeconds));
        var passResultCount = data.Results.Where(x => x.Succeeded).Count();
        var failResultCount = data.Results.Where(x => x.Succeeded == false).Count();
        var MessageResult = data.Results.Where(x => !string.IsNullOrEmpty(x.ErrorMessage));
        var keyResult = data.Results.Where(x => !string.IsNullOrEmpty(x.Key)).Select(x => x.Key).ToList();
        var unikKey = keyResult.Distinct().ToList();

        this.WriteToFile(string.Concat("Batch ID =>", batchID, " ActionsResult =>", actions.Count(),
            " passResultCount =>", passResultCount,
            " distinctCount =>", unikKey.Count(),
            " failResultCount =>", failResultCount,
            " MessageResult =>", string.Join(",", MessageResult.Select(x => x.ErrorMessage)))); 
        this.WriteToFile("-------------------------------------------------------");
        this.WriteToFile(Environment.NewLine);
    }
    catch (IndexBatchException e)
    {
        // Sometimes when your Search service is under load, indexing will fail for some of the documents in
        // the batch. Depending on your application, you can take compensating actions like delaying and
        // retrying. For this simple demo, we just log the failed document keys and continue.
        Console.WriteLine(
            "Failed to index some of the documents: {0}",
            String.Join(", ", e.IndexingResults.Where(r => !r.Succeeded).Select(r => r.Key)));

        this.WriteToFile("Error - PostBulkAssortmentDocuments -" + e.Message);
    }
}

Мы попробовали еще несколько попыток те же самые документы Index to pu sh, и мы обнаружили, что на портале Azure увеличивается . но иногда index size gets decreased and documents count increased.

Пример

1st attempt         (32000 in a batch)
    index-1 366,353 300.11 MB 
    index-2 296,046 243 MB

2nd attempt         (32000 in a batch)
    index-1 385,443 312.02 MB
    index-2 357,501 359.22 MB

3rd attemp          (32000 in a batch)
    index-1 392,312 316.64 MB
    index-2 383,996 387.63 MB

4th attempt         (32000 in a batch)
    index-1 392,324 316.63 MB
    index-2 392,186 381.84 MB

5th attempt         (32000 in a batch)
    index-1 392,328 316.07 MB
    index-2 392,857 314.8 MB

Ответ, полученный в результате azure search

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...