Error de solicitud incorrecta al intentar agregar documentos al servidor a través de Solrj
(4)
Estoy tratando de hacer un simple envío de SolrDocument con Java como el detallado en Solrj Wiki. Sin embargo, la presentación siempre falla y devuelve esto:
org.apache.solr.common.SolrException: Bad Request
Bad Request
request: http://address:port/solr/update?wt=xml&version=2.2
No me encuentro con ningún problema cuando consulto el servidor Solr a través de Solrj, así que no creo que haya ningún problema con la dirección o la conexión.
Se disculpa si esto es demasiado vago, pero esto es todo lo que tengo que seguir. Gracias.
Me encuentro con este problema antes, mi problema es que el documento de Solr no es válido con los campos definidos en schema.xml. Por lo tanto, haga coincidir los campos y tipos, y se solucionará el problema.
Algunos de sus campos pueden estar equivocados de acuerdo con su schema.xml. Además de buscar si hay más de un schema.xml en el classpath, su servidor podría estar cargando el incorrecto antes que el correcto.
Tuve el mismo problema, la excepción dice que algo está mal con schema.xml pero no dice cuál es la causa raíz. Verifique su registro del servidor (para mí es el registro de tomcat porque ejecuto solr con tomcat), hay excepciones registradas desde el lado del solr.
Por ejemplo, mi problema fue este:
SEVERE: org.apache.solr.common.SolrException: ERROR: [doc=XXXDOCURL] multiple values encountered for non multiValued field XXXMYFILED:
archivos para verificar:
- $ SOLR_HOME / $ CORE_HOME / conf / schema.xml
- $ NUTCH_HOME / runtime / local (o deploy) /conf/solr-mapping.xml
Bueno, el problema no era schema.xml, sino mi código. Intenté dos veces nutchDocument.add (XXXMYFIELD, "algún valor"), por lo que para solr parece multivalente.
Si es posible, intente conectarse utilizando CloudSolrServer en lugar de HttpSolrServer para que pueda descubrir qué pasa con menos esfuerzo. He encontrado que este último le dará esta excepción que no contiene pistas sobre cómo la solicitud fue "mala", mientras que la primera tendrá más detalles.
Excepción de HttpSolrServer para el campo requerido faltante f
:
org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException: Bad Request
Excepción de CloudSolrServer para lo mismo:
org.apache.solr.client.solrj.impl.CloudSolrServer$RouteException: [doc=1] missing required field: f