我正在使用服务器端对象模型来尝试调用搜索服务(用于查询搜索索引)。代码如下所示:
using (SPSite siteCollection = new SPSite(http://ValidSharePointSite))
{
KeywordQuery keywordQuery = new KeywordQuery(siteCollection);
keywordQuery.QueryText = "search text";
SearchExecutor searchExecutor = new SearchExecutor();
ResultTableCollection resultTableCollection = searchExecutor.ExecuteQuery(keywordQuery);
resultTableCollection.Filter("Pages", KnownTableTypes.RelevantResults);
ResultTable resultTable = resultTableCollection.FirstOrDefault();
DataTable dataTable = resultTable.Table;
}
当它到达创建KeywordQuery对象的行时,会引发以下错误:由于没有可用的搜索服务,因此无法完成搜索
我已经尝试了两个不同的SharePoint服务器/环境上的代码,并且会出现同样的问题。日志中有一些关于无法找到HostController服务的其他信息。有什么建议吗?
答案 0 :(得分:2)
必须使用 Microsoft.Office.Server.Search.Query 而不是 Microsoft.SharePoint.Search.Query ;
答案 1 :(得分:0)
确保您的搜索服务已启动且未指定错误。此外,通过浏览器中的搜索REST API,您可以验证搜索是否正常工作