使用Windsor Container的SolrNet PostSolrConnection装饰器发送错误请求

时间:2014-05-20 13:44:06

标签: post solrnet

我们在我们使用的文档管理器中实现Solr搜索。当用户请求搜索给定目录中的所有文档时,我们被迫将用户所选文档的docid聚合成一个数组并发送

SolrQueryInList("docid", arrFileNames)

如果用户目录中的文件数量非常大,则生成的http请求也是如此。 Ergo ,我们决定使用SolrPostConnection。在我们的网站中,我们按照M. Scheeffer's instructions在Windsor容器中实现PostSolrConnection装饰器:

public SolrSearchRepository(int caseID, string solrServer)           
{           
    this.facility = new SolrNetFacility(solrServer);
    this.facility.AddCore(caseID.ToString(), typeof(SolrDocument), 
        string.Format("{0}/{1}", solrServer, caseID));
    this.container = new WindsorContainer();
    this.container.Register(Component.For<ISolrConnection>()
             .ImplementedBy<PostSolrConnection>()
             .DependsOn(Parameter.ForKey("serverUrl").Eq(solrServer)));
    this.container.AddFacility(this.facility);
    solrOperation = this.container
             .Resolve<ISolrOperations<SolrDocument>>(caseID.ToString()); 
}

但是,我们仍然收到以下错误:

{"Message":"An error has occurred.","ExceptionMessage":"The remote server returned an
error: (400) Bad Request.","ExceptionType":"System.Net.WebException","StackTrace":"
at System.Net.HttpWebRequest.GetResponse()\r\n   at
HttpWebAdapters.Adapters.HttpWebRequestAdapter.GetResponse()\r\n   at
SolrNet.Impl.SolrConnection.GetResponse(IHttpWebRequest request)\r\n   at
SolrNet.Impl.SolrConnection.Get(String relativeUrl, IEnumerable`1 parameters)"}

我们使用Tomcat 7.0服务器。日志非常统一。这是我发起搜索时似乎发生的事情的粘贴素:

Solr Log

我注意到命令永远不会到达服务器。 PostSolrConnection没有实现post吗?请注意,此查询适用于少量文件(即docid

0 个答案:

没有答案