Я пытаюсь запустить пакетную операцию, чтобы объединить некоторые изменения в существующий поисковый индекс Azure, но продолжаю сталкиваться с этой ошибкой:
{Microsoft.Rest.Azure.CloudException: The request is invalid. Details: parameters : Object reference not set to an instance of an object.
Вот фрагмент моего кода:
public static void UploadData<T>(List<T> data, ISearchIndexClient indexClient) where T : class
{
int totalFailedToIndex = 0;
int totalPassedToIndex = 0;
for (int i = 0; i < data.Count; i = i + 500)
{
var stBatch = data.Skip(i).Take(500).ToList();
// Insert the data.
var serviceTreeBatch = IndexBatch.Merge(stBatch);
try
{
var index = indexClient.Documents.Index(serviceTreeBatch);
totalPassedToIndex += index.Results.Count();
}
catch (IndexBatchException e)
{
totalFailedToIndex += e.IndexingResults.Where(f => !f.Succeeded).Count();
}
catch(Exception e)
{
continue;
}
}
}
Я никогда не видел эту ошибку раньше, и я не могу найти что-нибудь об этом в Интернете. Любая помощь обязательно будет оценена!
Edit:
Вот пример типа T, который я передаю. ProjectId является ключом для этих элементов индекса. Также важно отметить, что эта версия не имеет всех значений индекса (это слияние, поэтому я загружаю только те значения, которые могут измениться вместе с ключом). Мне интересно, если пропущенные значения являются причиной этого сбоя?
public class IndexItemModel
{
/// <summary>
/// Unique ProjectId
/// </summary>
public string ProjectId { get; set; }
public string RepositoryId { get; set; }
public IEnumerable<string> Repository_Users { get; set; }
public string Repository_UsersString { get; set; }
}