#sharepoint-online #azure-cognitive-search
#sharepoint-online #azure-когнитивный поиск
Вопрос:
Я пытаюсь проиндексировать библиотеку документов веб-сайта Sharepoint и следовал этому руководству.
https://docs.microsoft.com/en-us/azure/search/search-howto-index-sharepoint-online
Все работает нормально, у меня запущен мой набор навыков, и извлекаются стандартные столбцы Sharepoint.
Моя основная проблема заключается в том, что я хочу получить пользовательские столбцы, созданные в этой библиотеке.
Например, у меня есть столбец, отображаемый как «Использование документа», техническое название — «DocumentUsage», и, как я видел в документации, чтобы получить настраиваемые поля, вам нужно указать его в строке подключения источника данных, созданного в Azure Search, как показано ниже :
"container": { "name": "useQuery", "query": "includeLibrariesInSite=https://myorganisation.sharepoint.com/sites/mysite;additionalColumns:DocumentUsage,UploadableDocument,DocumentFormat,Langage,TargetForUse,PaidContent,PublicationDate,Activity,TargetApplication,ProductCategory,SerialNumber,KeyWords"
И я сделал сопоставление полей в моем индексаторе, как показано ниже :
"fieldMappings": [
{
"sourceFieldName": "metadata_spo_site_library_item_id",
"targetFieldName": "id",
"mappingFunction": {
"name": "base64Encode",
"parameters": null
}
},
{
"sourceFieldName": "content",
"targetFieldName": "content",
"mappingFunction": null
},
{
"sourceFieldName": "DocumentUsage",
"targetFieldName": "document_usage",
"mappingFunction": null
},
{
"sourceFieldName": "UploadableDocument",
"targetFieldName": "uploadable_document",
"mappingFunction": null
},
{
"sourceFieldName": "DocumentFormat",
"targetFieldName": "document_format",
"mappingFunction": null
},
{
"sourceFieldName": "Langage",
"targetFieldName": "language_sp",
"mappingFunction": null
},
{
"sourceFieldName": "TargetForUse",
"targetFieldName": "target_for_use",
"mappingFunction": null
},
{
"sourceFieldName": "PaidContent",
"targetFieldName": "paid_content",
"mappingFunction": null
},
{
"sourceFieldName": "PublicationDate",
"targetFieldName": "publication_date",
"mappingFunction": null
},
{
"sourceFieldName": "Activity",
"targetFieldName": "activity",
"mappingFunction": null
},
{
"sourceFieldName": "TargetApplication",
"targetFieldName": "target_application",
"mappingFunction": null
},
{
"sourceFieldName": "ProductCategory",
"targetFieldName": "product_category",
"mappingFunction": null
},
{
"sourceFieldName": "SerialNumber",
"targetFieldName": "serial_number",
"mappingFunction": null
},
{
"sourceFieldName": "KeyWords",
"targetFieldName": "key_words",
"mappingFunction": null
}
],
Все работает нормально, за исключением моих дополнительных пользовательских столбцов sharepoint.
Моя проблема заключается в том, что извлекаются стандартные поля, но не пользовательские, указанные в запросе источника данных.
Должен ли я указывать технические имена или отображаемые имена столбцов?
Есть ли способ получить специальные столбцы? Как вы можете видеть, извлекаются стандартные, но не пользовательские, которые заполняются в библиотеке документов.
Заранее спасибо за помощь.
С уважением
Ответ №1:
В вашем источнике данных «контейнер» => значение поля «запрос» допущена опечатка. После «дополнительных столбцов» (additionalColumns:DocumentUsage) стоит двоеточие, а вместо него должно быть равно (=).
Попробуйте заменить additionalColumns:DocumentUsage на additionalColumns=DocumentUsage