2012-06-30 29 views
1

在Win 2008 Server上的Tomcat 7上运行Solr。SolrNet/Solr - 引起400错误请求的大量程查询

我正在遍历一些变量并创建一组范围查询来创建一个包含超过500个子句的查询。

List<ISolrQuery> queryList = new List<ISolrQuery>(); 

//THis is for var 1 , I have 6 sets of vars like this... 
for (int n = 0; n < N; n++) 
       { 
        queryList.Add(new SolrQueryByRange<double>("VAR1_" + n, val1[n] * lowerbound, val1[n] * upperBound)); 
       } 

//...var 2 
for (int n = 0; n < N; n++) 
       { 
        queryList.Add(new SolrQueryByRange<double>("VAR2_" + n, val2[n] * lowerbound, val2[n] * upperBound)); 
       } 

//...var 3... and so on... 

var results = solr.Query(new SolrMultipleCriteriaQuery(queryList.ToArray<ISolrQuery>(),"OR"), new QueryOptions 
      { 
       Rows = 100, 
       Fields = new[] { "FileName, ID,score" }, 
       Facet = new FacetParameters 
       { 
        Queries = new[] 
        { 
         new SolrFacetFieldQuery("Extension"), 
         new SolrFacetFieldQuery("FileName"), 
        } 
       } 
      }); 

我收到了来自solr的400个不良请求。查询工作正常,当我运行一个变种。我假设这是solr中的一些布尔查询限制。我确实将maxBoolClauseCount(从1024)设置为9999,但错误仍然存​​在。

任何想法?

+0

solr日志中的任何东西? – Persimmonium

+0

我在tomcat日志中看不到任何东西(我是否需要单独配置solr日志?)。 – Mikos

回答

1

难道是因为它运行到默认的GET参数码头大小限制的码头?

请参阅这个答案Solr search query returning full head exception

+0

谢谢,我在Windows 2008上的Tomcat 7上。 – Mikos

+1

这个技巧。我将maxHeadersize设置为一个非常大的值。这是我对Tomcat Conf/server.xml执行的操作 Mikos