6

我正在尝试使用 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 服务器时没有遇到任何问题,所以我认为地址或连接没有任何问题。

如果这太含糊了,我深表歉意,但这就是我所要做的。谢谢。

4

5 回答 5

8

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

于 2011-06-17T04:52:45.787 回答
2

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

于 2012-01-13T20:44:13.870 回答
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(或部署)/conf/solr-mapping.xml

那么问题不在于schema.xml,而是我的代码。我尝试了两次 nutchDocument.add(XXXMYFIELD,"some value") 所以对于 solr 它看起来像多值。

于 2013-04-07T11:44:45.663 回答
0

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

缺少必填字段的 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

于 2015-08-28T17:51:36.260 回答
-1

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

于 2018-06-13T10:27:54.110 回答