问题
我有一个 FAST Search 查询,它返回超过100000个结果。我正在尝试以 5000 为单位获得结果,如下所示:
var queryManager = SharedQueryManager.GetInstance(this.Page).QueryManager;
queryManager[0][0].ItemsPerPage = 5000;
queryManager[0][0].StartItem = 1;
queryManager[0][0].TrimDuplicates = false;
queryManager[0][0].RequestedProperties = new System.Collections.Specialized.StringCollection() { "title" };
var results = queryManager[0][0].GetResults(queryManager);
如果 StartItem 低于 100000,它可以正常工作。但是一旦我尝试它就会失败:
queryManager[0][0].StartItem = 100001;
我得到一个异常:The search request was unable to execute on FAST Search Server.
,内部异常是(不是很有帮助):The creator of this fault did not specify a Reason.
我尝试过的事情
我想这是一个配置问题,因为它只发生在 100000 标记之后。这似乎不是超时或传输的数据过多。
我已经尝试更改搜索服务应用程序配置 ( Config:qp_MaxResultsReturned
),就像这里建议的那样,
但没有运气。
还有一个解决方法建议我可以按创建日期对结果进行排序,并按日期添加额外的过滤(这样我总是会收到最多 5000 个结果),但我认为它有点难看。
我已使用FAST Search for Sharepoint 2010 Query Logger来记录失败的查询。奇怪的是,记录的响应包含超过 100000 标记的搜索结果,并且没有任何错误指示。