Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SharePoint 2013中使用C#访问搜索API时出错:您的搜索无法完成,因为没有可用的搜索服务_C#_Search_Sharepoint 2013 - Fatal编程技术网

在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点击搜索服务。一切正常。只是使用上面提到的代码在服务器端出现问题。