0

我们对传递大量数据有相同的要求,例如http://bugsquash.blogspot.in/2010/12/customizing-solrnet.html,我们尝试了以下方法。

1) 将 requestHeaderSize 增加到 Int32.MaxValue - stackoverflow 异常
2) Used 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(查询)

4

2 回答 2

0

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

于 2014-02-18T18:20:50.267 回答
0

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

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

于 2013-08-12T20:59:35.807 回答