我们有同样的要求传递像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)
答案 0 :(得分:0)
想知道为什么第2步不起作用,这是长Get请求问题的确切修复,即切换到Post请求。
您可能在初始化SolrNet以使用PostSolrConnection而不是默认SolrConnection的代码存在问题。需要查看能够获得solrPost对象实例的代码。再看看它并在这里发布。
答案 1 :(得分:0)
不幸的是,SolrNet在序列化查询参数时由于stackoverflow错误而无法正常工作。替代解决方法已发布http://smartcoder.in/solrnetstackoverflow/