Насыпной вкладыш для эластичного гнезда 5.x
Я пытался использовать функцию массовой вставки, но каждый раз, когда я использую ее, отображается какая-то ошибка отображения. Изменилось ли объявление функции массовой вставки с гнезда 1.x на гнездо 5.x, потому что в документации по гнездам 5.x я не нашел функцию.bulk(). Пожалуйста, Предложите
Код для массовой вставки:
public void bulkInsert(List<BaseData> recordList, List<String> listOfIndexName)
{
BulkDescriptor descriptor = new BulkDescriptor();
descriptor.Index<BaseData>(op => op
.Document(recordList[j])
.Index(listOfIndexName[j])
);
}
var result = clientConnection.Bulk(descriptor);
}
Мой список данных, которые я передаю, выглядит примерно так:
[ElasticsearchType(IdProperty = "number")]
class TicketData : BaseData
{
//[ElasticProperty(Index = FieldIndexOption.NotAnalyzed, Store = true)]
[Date(Name = "sys_updated_on", Store = true)]
public DateTimeOffset sys_updated_on { get; set; }
[Text(Name = "number", Store = true)]
public override string number { get; set; }
[Text(Name = "incident_state", Store = true)]
public string incident_state { get; set; }
[Text(Name = "location", Store = true)]
public string location { get; set; }
[Text(Name = "assigned_to", Store = true)]
public string assigned_to { get; set; }
[Text(Name = "u_knowledge_id", Store = true)]
public string u_knowledge_id { get; set; }
[Text(Name = "u_knowledge_id.u_process_role", Store = true)]
public string u_knowledge_id_u_process_role { get; set; }
}
1 ответ
Похоже, что NEST не может определить правильный тип вашей сущности, потому что вы указываете универсальный тип BaseData
тогда как фактический тип TicketData
, Вы должны указать фактический тип объекта, который вы хотите проиндексировать. Поскольку у вас могут быть разные типы в вашем списке, вы можете получить фактический тип, используя GetType()
метод:
descriptor.Index<BaseData>(op => op
.Document(recordList[j])
.Index(listOfIndexName[j])
.Type(recordList[j].GetType())
);
В настоящее время ваш запрос пытается динамически создать другой тип с отображением по умолчанию вместо того, чтобы интерпретировать его как существующий тип с явным отображением