2012-06-30 2 views
1

Windows 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 개의 나쁜 요청을 받고있다. 내가 1 var 실행할 때 쿼리를 잘 작동합니다. 나는 이것이 solr의 bool 질의 제한이라고 가정하고있다. 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에했던 것입니다. ConnectorPort = "8080"protocol = "HTTP/1.1" \t \t maxHttpHeaderSize = "1000000" connectionTimeout = "20000" redirectPort = "8443"/> – Mikos

관련 문제