Установите Edm.complexType в Azure Search по sdk

#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. Это самый эффективный способ (не полагайтесь на встроенный сериализатор)