Индексирование сайта Sharepoint Online в Azure search

#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