在 JSOM 中设置 SharePoint 搜索查询结果源



我将结果源级别设置为"SPSite",因为我想使用在网站集级别定义的结果源。但它不起作用。"SPSite"在JSOM中是一个有效的参数吗?

let query = new Search.KeywordQuery(ctx);
// set Source Name
query.get_properties().set_item('SourceName', 'Result Source Name');
// set Source Level
query.get_properties().set_item('SourceLevel', 'SPSite');

如果我将源级别设置为"SPSite订阅",它将成功使用租户级别结果源。

我在同一个地方被难住了一段时间。向查询添加精简条件筛选器对我和我所处的情况都很有用。可能对你也有用。

// add refiner(s)
keywordQuery.set_refiners("SPSiteURL");
// add the returned columns
var properties = keywordQuery.get_selectProperties();
properties.add('SPWebUrl');                 // site this comes from
// below is how to build the refinement filter to add to the keywordquery
var filterCollection = keywordQuery.get_refinementFilters();
// add scope filter, can be mannualy or can grab the webUrl from the client context
// var filter = Modifier + ':"' + RefinementToken(or value) + '"';
filterCollection.add('SPSiteURL:"'+webUrl+'"');