Я индексирую данные в Azure Индекс поиска, который создается с помощью специального навыка. Этот пользовательский навык создает сложные данные, которые я хочу сохранить в поисковом индексе Azure.
Исходные данные поступают из хранилища больших двоичных объектов, и я вынужден использовать REST API без очень solid аргумент в пользу использования. NET SDK.
Текущий код
Ниже приводится краткое изложение того, что у меня есть в настоящее время. Я не могу изменить поле индекса или формат данных, созданных конечной точкой, используемой пользовательским навыком.
Сложные данные
Ниже приведен пример сложных данных, созданных пользовательским навыком (в правильный value/recordId/etc.
формат):
{
"field1": 0.135412,
"field2": 0.123513,
"field3": 0.243655
}
Пользовательский навык
Вот пользовательский навык, который создает указанные данные:
{
"@odata.type": "#Microsoft.Skills.Custom.WebApiSkill",
"uri": "https://myfunction.azurewebsites.com/api,
"httpHeaders": {},
"httpMethod": "POST",
"timeout": "PT3M50S",
"batchSize": 1,
"degreeOfParallelism": 5,
"name": "MySkill",
"context": "/document/mycomplex
"inputs": [
{
"name": "text",
"source": "/document/content"
}
],
"outputs": [
{
"name": "field1",
"targetName": "field1"
},
{
"name": "field2",
"targetName": "field2"
},
{
"name": "field3",
"targetName": "field3"
}
]
}
Я попытался несколько вариантов, Примечательно использование ShaperSkill с каждым полем в качестве входа и выходом "targetName"
как "mycomplex"
(с соответствующим контекстом).
Indexer
Вот отображение выходного поля индексатора для навыка :
{
"sourceFieldName": "/document/mycomplex,
"targetFieldName": "mycomplex"
}
Я пробовал несколько вариантов, таких как "sourceFieldName": "/document/mycomplex/*
.
Индекс поиска
И это поле целевого индекса:
{
"name": "mycomplex",
"type": "Edm.ComplexType",
"fields": [
{
"name": "field1",
"type": "Edm.Double",
"retrievable": true,
"filterable": true,
"sortable": true,
"facetable": false,
"searchable": false
},
{
"name": "field2",
"type": "Edm.Double",
"retrievable": true,
"filterable": true,
"sortable": true,
"facetable": false,
"searchable": false
},
{
"name": "field3",
"type": "Edm.Double",
"retrievable": true,
"filterable": true,
"sortable": true,
"facetable": false,
"searchable": false
}
]
}
Результат
Мой результат обычно похож на Could not map output field 'mycomplex' to search index. Check your indexer's 'outputFieldMappings' property.
.