#azure #search #complextype
#azure #Поиск #complextype
Вопрос:
У меня проблема в Azure search, я получаю данные из файла csv в хранилище больших двоичных объектов. Для упрощения предположим, что мой объект как:
public class Instrument
{
public Identifier Identifier { get; set; }
[SearchableField(IsSortable = true, IsKey = true)]
public string Id { get; set; }
[SearchableField(IsSortable = true)]
public string RefIs { get; set; }
}
public class Identifier
{
[SearchableField(IsSortable = true)]
public string Code { get; set; }
}
когда я получаю свои данные, они отображаются в формате csv, например: _id,_ref,_code
Когда я создаю свой индекс с помощью SDK, я настраиваю сопоставление для простых полей:
indexer.FieldMappings.Add(new FieldMapping("_ref")
{
TargetFieldName = "RefIs"
});
но я не могу понять, как я объявляю его сложным типом в моем индексаторе? данный код для него не работает :
indexer.FieldMappings.Add(new FieldMapping("_code")
{
TargetFieldName = "Code"
});
indexer.FieldMappings.Add(new FieldMapping("_code")
{
TargetFieldName = "Identifier.Code"
});
ошибка та же, TargetField отсутствует в индексе.
Может кто-нибудь помочь?
Ответ №1:
Лучший способ преодолеть это — самостоятельно проанализировать ваш CSV-файл, а затем отправить документы в ACS, используя открытый API. Это самый эффективный способ (не полагайтесь на встроенный сериализатор)