Я работаю над индексацией содержимого c HTML в хранилище BLOB-объектов. В документации говорится, что анализаторы предварительной обработки будут отбрасывать окружающие теги HTML при индексации содержимого из этого источника данных. Однако наше значение content
всегда является целым необработанным документом HTML. Я также не могу извлечь значение наших тегов "meta description". Согласно документации по хранилищу индексированных блогов, содержимое HTML должно автоматически создавать свойство metadata_description
, но это значение всегда равно нулю.
Я пробовал много разных конфигураций индексатора, но до сих пор не удалось определить, что у меня что-то неправильно настроено или Azure Поиск не распознает тип содержимого должным образом.
Все файлы в хранилище BLOB-объектов имеют расширение .html
, и в столбце Тип содержимого отображается text/html
.
Это конфигурация индексатора (некоторые биты ):
{
"@odata.context": "https://<instance>.search.windows.net/$metadata#indexers/$entity",
"@odata.etag": "\"<tag>\"",
"name": "<name>",
"description": null,
"dataSourceName": "<datasource name>",
"skillsetName": null,
"targetIndexName": "<target index>",
"disabled": null,
"schedule": {
"interval": "PT2H",
"startTime": "0001-01-01T00:00:00Z"
},
"parameters": {
"batchSize": null,
"maxFailedItems": -1,
"maxFailedItemsPerBatch": null,
"base64EncodeKeys": null,
"configuration": {
"parsingMode": "text",
"dataToExtract": "contentAndMetadata",
"excludedFileNameExtensions": ".png .jpg .mpg .pdf",
"indexedFileNameExtensions": ".html"
}
},
"fieldMappings": [
{
"sourceFieldName": "metadata_storage_path",
"targetFieldName": "id",
"mappingFunction": {
"name": "base64Encode",
"parameters": null
}
},
{
"sourceFieldName": "metadata_description",
"targetFieldName": "description",
"mappingFunction": null
},
{
"sourceFieldName": "metadata_storage_path",
"targetFieldName": "url",
"mappingFunction": {
"name": "extractTokenAtPosition",
"parameters": {
"delimiter": "<delimiter>",
"position": 1
}
}
}
],
"outputFieldMappings": [],
"cache": null
}