solrnet中的StackOverflowException

时间:2013-08-08 15:06:45

标签: solrnet stack-overflow

我们有同样的要求传递像http://bugsquash.blogspot.in/2010/12/customizing-solrnet.html这样的大数据,我们尝试了以下内容。

1)将requestHeaderSize增加到Int32.MaxValue - stackoverflow异常
2)使用PostSolrconnection - 获得StackOverflow异常。
3)下载solrnet源并添加为项目引用 - Stackoverflow异常
然后即使我们改为GET,我们也得到了StackOverflow异常。当我们有超过500个参考ID时,错误就会出现。如果我们的价值较低,那就有效。

这就是我们打电话的方式,

searchResults = solrPost.Query(new SolrMultipleCriteriaQuery(new[] 
                { 
                    query 
                 }), 
                      new SolrNet.Commands.Parameters.QueryOptions 
                      { 
                          Fields = new[] { "*", "score" }, 
                          Start = pageSize, 
                          Rows = 40, 
                          OrderBy = listSort 
                      }); 

有什么想法吗?

修改

我们尝试使用HttpRequest请求solr并将其识别为maxBooleanClause问题,然后POST开始通过HttpRequest工作。但是使用SolrNet时会发生错误,并且在序列化查询对象时会发生错误。 queryserializer.serialize(Query)

2 个答案:

答案 0 :(得分:0)

想知道为什么第2步不起作用,这是长Get请求问题的确切修复,即切换到Post请求。

您可能在初始化SolrNet以使用PostSolrConnection而不是默认SolrConnection的代码存在问题。需要查看能够获得solrPost对象实例的代码。再看看它并在这里发布。

答案 1 :(得分:0)

不幸的是,SolrNet在序列化查询参数时由于stackoverflow错误而无法正常工作。替代解决方法已发布http://smartcoder.in/solrnetstackoverflow/