Я пытаюсь использовать поиск Azure в контейнере больших двоичных объектов, который содержит тонну файлов .htm.Каждый из этих файлов полностью закодирован в base64 с отступом.Одним из этих файлов может быть «example.htm», и если вы откроете его, вы увидите:
//This decodes to html
PCEtLSBBIHNlZ21lbnQgb2YgYSBzd2VldCBib2R5IC0tPg0KPGRpdiBjbGFzcz0iYS1uaWNlLWNsYXNzIiBpZD0iaW1tYS1pZCI+DQoJPHA+Q2F0J3MgYXJlIGhhcmQgdG8gZGVjb2RlPC9wPg0KPC9kaXY+
Я попытался добавить отображение поля для декодирования этого в моем индексаторе.Если я установлю «useHttpServerUtilityUrlTokenDecode»: true , то получу «Ошибка применения функции сопоставления base64Decode к полю« NAME »: массив не может быть нулевым. \ R \ nПараметр имени: байты». и если я установлю его на false , то никакие файлы не будут проиндексированы, даже если он говорит "успех".
{
"name":"demoindexer",
"dataSourceName" : "demodata",
"targetIndexName" : "demoindex",
"fieldMappings" : [
{
"sourceFieldName" : "content",
"targetFieldName" : "content",
"mappingFunction" :
{ "name" : "base64Decode", "parameters" : {
"useHttpServerUtilityUrlTokenDecode" : false } }
}
],
"parameters":
{
"maxFailedItems":-1,
"maxFailedItemsPerBatch":-1
}
}
Кажется, что подсказка может быть примечанием к сопоставлениям полейстраница для Azure, где говорится, что для « Base64-кодирования с заполнением используйте безопасные для URL символы и удалите заполнение путем дополнительной обработки после кодирования библиотеки ».Я не уверен, что это можно сделать с помощью API поиска Azure, и если да, то как это сделать или же просто сказать, что перед загрузкой в хранилище Azure кодируют иначе.
Как мне поступить с декодированием?содержимое этих файлов для моего индекса, чтобы результаты поиска не возвращали строки base64?