我正在尝试使用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服务器时,我没有遇到任何问题,所以我认为地址或连接没有任何问题。
如果这太模糊,请道歉,但这是我必须继续下去的。感谢。答案 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:
要检查的文件:
问题不在于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