我有一个搜索rest API,当我通过共享点设计器运行它时,我得不到相同的数字,如果结果是由共享点网站上的搜索页面返回的,我尝试使用不同的源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()
{
}发布于 2018-11-09 03:01:46
通常,结果是分页的。它的意思是,不是一次返回所有结果,而是将结果分成几个部分,每个部分(页面)发送一次。
例如,当您在google.com中搜索时,而不是返回全部1,50,000,000...结果,Google只返回10个左右的结果。要获得下10个结果,请单击页面底部的分页菜单中的next按钮。
这样做是为了使API和网络不会过载。想象一下包含15,000,000条记录的响应会有多大。
这就是你的遭遇。在您收到的响应中,查看是否有包含下一页URL的记录,Microsoft通常是这样做的。如果你调用这个URL,你会得到下一个页面。如果没有,请查看您调用的URL是否在某个地方有一个参数,您可以在其中选择页面。
https://stackoverflow.com/questions/53213320
复制相似问题