我正在使用服务器端对象模型来尝试调用搜索服务(用于查询搜索索引)。代码如下所示:
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服务器/env上尝试了这些代码,同样的问题也发生了。日志中还有一些关于无法找到HostController服务的其他信息。有什么建议吗?
发布于 2014-05-21 18:28:32
以下是解决方案:http://coder87.wordpress.com/2013/03/27/keywordquery-doesnt-work-or-confusion-between-search-namespaces/#comment-484
必须使用Microsoft.Office.Server.Search.Query而不是Microsoft.SharePoint.Search.Query;
发布于 2014-05-21 07:33:42
确保您的搜索服务处于打开状态,并且没有指定错误。此外,通过浏览器中的搜索REST,您可以验证搜索是否正常工作。
https://stackoverflow.com/questions/23772611
复制相似问题