You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JSOM中设置搜索查询结果源级别为SPSite无效,该参数是否合法?

问题解答

你遇到的问题根源在于:'SPSite'并不是JSOM中设置结果源级别时的有效参数值。

在SharePoint JSOM的搜索API里,SourceLevel对应的是Microsoft.Office.Server.Search.Query.SourceLevel枚举类型,当你通过KeywordQuery.Properties设置这个属性时,需要传入枚举对应的数字值,而不是枚举成员的字符串名称。

枚举值与级别对应关系:

  • SPWeb(网站级别):0
  • SPSite(网站集级别):1
  • SPSiteSubscription(租户级别):2
  • SearchService(服务应用级别):3

你之前设置'SPSiteSubscription'能生效其实是个意外——实际上正确的做法是传入数字2,字符串值本身并不是合法参数,可能是某些环境下的兼容行为导致它偶然生效了。

修正后的代码示例:

let query = new Search.KeywordQuery(ctx); 
// 设置结果源名称
query.get_properties().set_item('SourceName', 'Result Source Name'); 
// 设置网站集级别结果源,使用数字1而非字符串'SPSite'
query.get_properties().set_item('SourceLevel', 1); 

另外补充一点:如果想避免硬编码数字、让代码更易读,可以直接引用JSOM提供的枚举对象(前提是页面已加载sp.search.js等搜索脚本依赖):

query.get_properties().set_item('SourceLevel', Microsoft.Office.Server.Search.Query.SourceLevel.SPSite);

内容的提问来源于stack exchange,提问作者Damitha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:54:39