2010-11-28 4 views
5

Solrj Wiki에 설명 된 것과 같이 Java로 간단한 SolrDocument 제출을 시도하고 있습니다. 그러나, 제출은 항상 실패하고이 반환잘못된 요청 오류 Solrj를 통해 서버에 문서를 추가하려고 시도 할 때

org.apache.solr.common.SolrException: Bad Request 
Bad Request 
request: http://address:port/solr/update?wt=xml&version=2.2 

Solrj 통해 SOLR 서버를 쿼리 할 때 내가 어떤 문제로 실행하지 않는, 그래서는 주소 또는 연결에 문제가 있다고 생각하지 않습니다.

사과하는 경우 너무 애매하지만 이것이 내가해야 할 모든 것입니다. 감사.

+1

체크 전체 예외에 대한 SOLR 로그 및 여기에 게시. –

+0

Mauricio가 말했듯이 Solr 로그는 상황을 알려줍니다. 또한 ID 필드가 있거나 스키마를 처리 할 수없는 필드에 대해 여러 값을 보내지 않는다는 등 귀하의 Solr 문서가 스키마에 유효한지 확인하십시오. –

답변

8

이전에는이 ​​문제가 발생했습니다. 문제는 solr 문서가 schema.xml에 정의 된 필드와 맞지 않습니다. 필드와 유형을 일치 시키면 문제가 해결됩니다.

2

schema.xml에 따라 일부 필드가 잘못되었을 수 있습니다. 클래스 패스에 하나 이상의 schema.xml이 있는지 찾아 보는 것 외에, 서버가 올바른 패스보다 먼저로드 중일 수 있습니다.

0

동일한 문제가 있었지만 예외는 schema.xml으로 잘못되었다고하지만 근본 원인은 무엇인지 알려주지 않습니다. 서버 로그를 확인하십시오 (solcat을 Tomcat과 함께 실행하기 때문에 Tomcat 로그입니다). solr 측에서 예외가 기록됩니다.

SEVERE: org.apache.solr.common.SolrException: ERROR: [doc=XXXDOCURL] multiple values encountered for non multiValued field XXXMYFILED: 

파일 확인 :

예를 들어 내 문제는이이었다

  • $ SOLR_HOME/$ CORE_HOME/conf의 /의 schema.xml
  • $ NUTCH_HOME/실행/지역을 (또는 deploy) /conf/solr-mapping.xml

문제는 schema.xml이 아니라 코드입니다. 나는 nutchDocument.add (XXXMYFIELD, "some value")의 두 번 시도 했으므로 solr은 다중 값처럼 보입니다.

0

가능한 경우 적은 노력으로 무엇이 잘못되었는지 파악할 수 있도록 HttpSolrServer 대신 CloudSolrServer를 사용하여 연결해보십시오. 나는 후자가 요청이 "나쁜"방법에 대한 단서를 포함하지 않는이 예외를 제공 할 것이지만, 전자가 더 자세한 내용을 갖게된다는 것을 알았다.

HttpSolrServer 필요한 필드 f 누락 예외 :

org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException: Bad Request

CloudSolrServer의 같은 일에 대한 예외 :

org.apache.solr.client.solrj.impl.CloudSolrServer$RouteException: [doc=1] missing required field: f

관련 문제