我正在联机使用SharePoint的文档库进行文档存储。我已将某些自定义列添加到SharePoint文档库中,以存储文档的其他元数据。
SharePoint列屏幕截图
现在,我想通过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'
搜索API为自定义列使用"托管属性",当您创建自定义属性时,它将自动创建一个名称类似于的托管属性
INTERNALNAMEPROPERTYtype
例如,如果您的"ASSET TYPE"列的内部名称为"ASSET_TYPE",并且它是"单行文本"类型的列,则您的托管属性将为:
ASSET_TYPEOWSTEXT
您也可以通过以下网址搜索您的托管物业名称:
站点配置>>管理搜索模式>>托管属性
您可以在这里了解更多关于托管属性的信息:https://learn.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'
我建议您使用内容搜索Web部件以简单的方式测试您的查询。