在SharePoint 2013中使用C#访问搜索API时出错:您的搜索无法完成,因为没有可用的搜索服务
我使用服务器端对象模型尝试调用搜索服务(用于查询搜索索引)。代码如下所示:在SharePoint 2013中使用C#访问搜索API时出错:您的搜索无法完成,因为没有可用的搜索服务,c#,search,sharepoint-2013,C#,Search,Sharepoint 2013,我使用服务器端对象模型尝试调用搜索服务(用于查询搜索索引)。代码如下所示: using (SPSite siteCollection = new SPSite(http://ValidSharePointSite)) { KeywordQuery keywordQuery = new KeywordQuery(siteCollection); keywordQuery.QueryTex
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服务的附加信息。有什么建议吗?请确保您的搜索服务已启动,并且没有指定错误。另外,通过浏览器中的Search REST API,您可以验证搜索是否正常工作以下是解决方案:
必须使用Microsoft.Office.Server.Search.Query而不是Microsoft.SharePoint.Search.Query 我还尝试了FullTextSqlQuery类。没有运气。搜索工作正常(增量和完全爬网)。我还可以通过浏览器中的ODataURL点击搜索服务。一切正常。只是使用上面提到的代码在服务器端出现问题。