在 Azure 搜索中为 Sharepoint Online 站点编制索引

Indexing Sharepoint Online Site in Azure search

我正在尝试为 Sharepoint 网站文档库编制索引,我遵循了本教程。

https://docs.microsoft.com/en-us/azure/search/search-howto-index-sharepoint-online

一切正常我触发了我的技能组合并检索了标准 Sharepoint 列。

我的主要问题是我想检索在此库中创建的自定义列。

例如,我有一个列显示为“文档用法”,技术名称是“DocumentUsage”,正如我在文档中看到的那样,要获取自定义字段,您需要在创建的数据源的连接字符串中指定它在 Azure 搜索中,如下所示:

"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
    }
  ],

除了我额外的共享点自定义列外,一切正常。 我的问题是检索到了标准字段,但没有检索到数据源查询中指定的自定义字段。

我必须输入列的技术名称或显示名称吗?

是否有检索特殊列的技巧? 如您所见,检索到了标准的,但没有检索到文档库中填写的自定义的。

在此先感谢您的帮助。

此致

您的数据源中有错字 'container' => 'query' 字段值。 'additionalColumns' (additionalColumns:DocumentUsage) 后有一个冒号,必须用等号 (=) 代替。

尝试将 additionalColumns:DocumentUsage 替换为 additionalColumns=DocumentUsage