错误请求错误尝试通过Solrj向服务器添加文档时

时间:2010-11-28 07:33:21

标签: solr solrj

我正在尝试使用Java进行简单的SolrDocument提交,就像Solrj Wiki中详述的那样。但是,提交总是失败并返回:

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

通过Solrj查询Solr服务器时,我没有遇到任何问题,所以我认为地址或连接没有任何问题。

如果这太模糊,请道歉,但这是我必须继续下去的。感谢。

5 个答案:

答案 0 :(得分:8)

之前我遇到过这个问题,我的问题是solr文档对schema.xml中定义的字段无效。因此,使字段和类型匹配,问题将得到解决。

答案 1 :(得分:2)

根据schema.xml,您的某些字段可能有误。除了查找类路径中是否有多个schema.xml之外,您的服务器可能会在正确之前加载错误。

答案 2 :(得分:0)

我遇到了同样的问题,异常表示 schema.xml 有些不好,但没有说出根本原因。检查你的服务器日志(对我来说这是tomcat日志,因为我用tomcat运行solr),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 / runtime / local(或deploy)/conf/solr-mapping.xml

问题不在于schema.xml,而在于我的代码。我尝试了两次nutchDocument.add(XXXMYFIELD,“一些值”)所以对于solr来说它看起来像多值。

答案 3 :(得分:0)

如果可能,尝试使用CloudSolrServer而不是HttpSolrServer进行连接,这样您就可以用更少的努力来找出问题所在。我发现后者会给你这个例外,它不包含关于请求如何“坏”的线索,而前者将有更多细节。

缺少必填字段f的HttpSolrServer异常:

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

答案 4 :(得分:-1)

转到您的solr管理页面,然后按日志记录。检查未定义的字段错误并将该字段添加到schema.xml并重新启动solr