我有一个Search Rest API,当我通过Sharepoint Designer运行它时,如果结果与Share point网站上“搜索”页面返回的结果相同,则无法获得相同的编号,我也曾尝试使用其他源ID,尝试使用结果源中的默认源ID,但是我总是得到相同的结果,所以我不确定自己做错了什么。 我的其他想法是,是否可以通过内置到共享点的默认搜索功能获取所有结果?
var ct = new SP.ClientContext.get_current();
var keywordQuery = new Microsoft.SharePoint.Client.Search.Query.KeywordQuery(ct);
var queryStr = ctx.DataProvider.get_currentQueryState().k;
keywordQuery.set_queryText(queryStr);
keywordQuery.set_trimDuplicates(false);
keywordQuery.set_enableSorting(true);
keywordQuery.set_sourceId=("xxxxxx-xxxx-xxxx-xxx-xxxxxxx");
keywordQuery.set_rowLimit(500);
keywordQuery.set_trimDuplicates(false);
var searchExecutor = new Microsoft.SharePoint.Client.Search.Query.SearchExecutor(ct);
var results = searchExecutor.executeQuery(keywordQuery);
ct.executeQueryAsync(onQuerySuccess, onQueryFail);
function onQuerySuccess()
{
results.m_value.ResultTables[1].ResultRows.forEach(function (row)
{
var Aname1 = row.name;
console.log(row);
if (!$isNull(Aname1))
{
var name= Aname1;
console.log(name);
}
});
}
function onQueryFail()
{
}
答案 0 :(得分:0)
通常,对结果进行分页。这意味着,不是将所有结果立即返回,而是将它们分为几部分,并且每个部分(页面)都发送一次。
例如,当您在google.com中搜索时,Google不会返回全部1,50,00,000 ....个结果,而是仅返回10个左右的结果。要获取下10个结果,请在页面底部的分页菜单中单击下一步按钮。
这样做是为了避免API和网络过载。想象一下,有1,50,00,000条记录的响应将有多大。
这就是你正在发生的事情。在收到的响应中,查看是否存在下一页具有URL的记录,Microsoft通常以这种方式进行操作。如果您调用该URL,则会得到下一页。如果那不存在,请查看您调用的URL是否在某处有参数,您可以在其中选择页面。