【问题标题】:SharePoint Search APISharePoint 搜索 API
【发布时间】:2018-11-07 12:01:00
【问题描述】:

我正在使用 SharePoint Online 的文档库进行文档存储。我已将某些自定义列添加到 SharePoint 文档库以存储文档的其他元数据。

SharePoint Columns Screenshot

现在,我想通过 REST API 在 SharePoint 中进行全文搜索。我们能够对自定义列数据进行全文搜索。但是,还有一项要求是根据某些列(例如“ASSET TYPE = image”)过滤结果。

我怎样才能实现这个功能?我目前的查询如下:

_api/search/query?querytext='(cloud computing)'&querytemplate='{searchTerms} path:"https://DOMAIN_NAME.sharepoint.com/sites/LOREM_IPSUM/Shared%20Documents" ContentTypeId:0x0* IsDocument:true'&SummaryLength=100&RowLimit=500&culture=1033&BypassResultTypes=true&EnableQueryRules=false&ProcessBestBets=false&ProcessPersonalFavorites=false&properties='EnableDynamicGroups:true'

【问题讨论】:

    标签: sharepoint


    【解决方案1】:

    搜索 API 对自定义列使用“托管属性”,当您创建自定义属性时,它会自动创建一个名称类似的托管属性

    INTERNALNAMEPROPERTYtype

    例如,如果您的“ASSET TYPE”列的内部名称为“ASSET_TYPE”,并且它是“单行文本”类型的列,那么您的托管属性将为:

    ASSET_TYPEOWSTEXT

    您还可以通过以下方式搜索您的托管属性名称:

    站点配置 >> 管理搜索架构 >> 托管属性

    您可以在此处了解有关托管属性的更多信息: https://docs.microsoft.com/en-us/sharepoint/technical-reference/automatically-created-managed-properties-in-sharepoint

    现在,考虑到如果您的托管属性的名称为 ASSET_TYPEOWSTEXT,您可以像这样在搜索查询中使用它:

    ASSET_TYPEOWSTEXT=image

    所以您的搜索查询将如下所示:

    _api/search/query?querytext='(cloud computing)'&querytemplate='{searchTerms} path:"https://DOMAIN_NAME.sharepoint.com/sites/LOREM_IPSUM/Shared%20Documents" ContentTypeId:0x0* IsDocument:true ASSET_TYPEOWSTEXT=image'&SummaryLength=100&RowLimit=500&culture=1033&BypassResultTypes=true&EnableQueryRules=false&ProcessBestBets=false&ProcessPersonalFavorites=false&properties='EnableDynamicGroups:true'
    

    我建议您使用内容搜索 webpart 以一种简单的方式测试您的查询。

    【讨论】:

      猜你喜欢
      • 2013-06-06
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-25
      相关资源
      最近更新 更多