Ошибка неверного запроса при попытке добавить документы на сервер через Solrj

Я пытаюсь сделать простую отправку SolrDocument с Java, как описано в Solrj Wiki. Однако отправка всегда терпит неудачу и возвращает это:

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

Я не сталкиваюсь с какими-либо проблемами при запросе сервера Solr через Solrj, поэтому я не думаю, что есть какие-либо проблемы с адресом или подключением.

извиняюсь, если это слишком расплывчато, но это все, что я могу сказать. Спасибо.


person BiCen    schedule 28.11.2010    source источник
comment
проверьте журнал Solr на наличие полного исключения и опубликуйте его здесь.   -  person Mauricio Scheffer    schedule 28.11.2010
comment
Как сказал Маурисио, журнал Solr, скорее всего, расскажет вам, что происходит. Кроме того, убедитесь, что ваш документ Solr действителен в соответствии с вашей схемой, например, что он имеет поле идентификатора или что вы не отправляете несколько значений для поля, которое не может их обработать.   -  person Bill Dueber    schedule 28.11.2010


Ответы (5)


Я сталкивался с этой проблемой раньше, моя проблема заключается в том, что документ solr недействителен с полями, определенными в schema.xml. Поэтому совместите поля и типы, и проблема будет решена.

person dongpf    schedule 17.06.2011

Некоторые из ваших полей могут быть неправильными в соответствии с вашим schema.xml. Помимо поиска, если в пути к классам есть более одного schema.xml, ваш сервер может загружать неправильный перед правильным.

person thiagoh    schedule 13.01.2012

У меня была та же проблема, исключение говорит, что что-то не так с schema.xml, но не говорит, что является основной причиной. Проверьте журнал вашего сервера (для меня это журнал tomcat, потому что я запускаю solr с 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/runtime/local(или развернуть)/conf/solr-mapping.xml

Проблема была не в schema.xml, а в моем коде. Я дважды пробовал nutchDocument.add(XXXMYFIELD,"какое-то значение"), так что для solr это выглядит как многозначное.

person Babu    schedule 07.04.2013

Если возможно, попробуйте подключиться с помощью CloudSolrServer вместо HttpSolrServer, чтобы с меньшими усилиями выяснить, что не так. Я обнаружил, что последний даст вам это исключение, которое не содержит подсказок относительно того, как запрос был «плохим», в то время как первый будет иметь больше деталей.

Исключение HttpSolvServer из-за отсутствия обязательного поля f:

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

Исключение CloudSorrServer для того же самого:

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

person tar    schedule 28.08.2015

перейдите на страницу администратора solr, затем нажмите «Вход в систему». проверьте наличие ошибки неопределенного поля и добавьте это поле в schema.xml и перезапустите solr

person Kal K.    schedule 13.06.2018