pysolr.SolrError: Solr responded with an error (HTTP 400): [Reason: ERROR: Error adding field msg=For input string

Pregunta de la clase:
Bernardo Augusto García Loaiza

Bernardo Augusto García Loaiza

Pregunta
student
hace 9 años

Estoy utilizando

apache-solr
como servidor de búsquedas para indexar registros de mis modelos y poder efectuar funcionalidades de búsquedas

Cuando quiero generar mis índices con

python manage.py rebuild_index
ocurre esto:

<code> WARNING: This will irreparably remove EVERYTHING from your search index in connection 'default'. Your choices after this are to restore from backups or rebuild via the `rebuild_index` command. Are you sure you wish to continue? [y/N] y Removing all documents from your index because you said so. All documents removed. Indexing 1 lodging offers Failed to add documents to Solr: Solr responded with an error (HTTP 400): [Reason: ERROR: [doc=hosts.lodgingoffer.35] Error adding field 'ad_title'='Apartamento multifamiliar' msg=For input string: "Apartamento multifamiliar"] Traceback (most recent call last): File "/home/bgarcial/.virtualenvs/ihost/lib/python3.5/site-packages/haystack/backends/solr_backend.py", line 73, in update self.conn.add(docs, commit=commit, boost=index.get_field_weights()) File "/home/bgarcial/.virtualenvs/ihost/lib/python3.5/site-packages/pysolr.py", line 891, in add overwrite=overwrite, handler=handler) File "/home/bgarcial/.virtualenvs/ihost/lib/python3.5/site-packages/pysolr.py", line 478, in _update return self._send_request('post', path, message, {'Content-type': 'text/xml; charset=utf-8'}) File "/home/bgarcial/.virtualenvs/ihost/lib/python3.5/site-packages/pysolr.py", line 393, in _send_request raise SolrError(error_message % (resp.status_code, solr_message)) pysolr.SolrError: Solr responded with an error (HTTP 400): [Reason: ERROR: [doc=hosts.lodgingoffer.35] Error adding field 'ad_title'='Apartamento multifamiliar' msg=For input string: "Apartamento multifamiliar"] (ihost) bgarcial@elpug ‹ testing ●● › : ~/workspace/ihost_project [0] %

Estoy usando

solr-6.6.0
que es su última versión, y mis campos del modelo indexado y generados por
Haystack
en el archivo
schema.xml
es:

<code> <field name="ad_title" type="text_en" indexed="true" stored="true" multiValued="false" /> <field name="text" type="text_en" indexed="true" stored="true" multiValued="false" />

Quisiera resaltar que en mi archivo

solrconfig.xml
no estoy efectuando cambios y éste se encuentra de manera original a cuando descomprimí e instale
apache-solr

En mi modelo que estoy indexando, el campo

ad_title
es de tipo CharField

<code> class LodgingOffer(models.Model): ad_title = models.CharField( null=False, blank=False, max_length=255 )

Mi archivo

search_indexes.py
es:

<code> class LodgingOfferIndex(indexes.SearchIndex, indexes.Indexable): text = indexes.CharField(document=True, use_template=True) ad_title = indexes.CharField(model_attr='ad_title', null=True) def get_model(self, using=None): return LodgingOffer def index_queryset(self, using=None): return self.get_model().objects.all()

¿Existe algún problema con el campo el cual es mi índice de búsqueda?

1 respuestas
    Diego Forero

    Diego Forero

    Team Platzi
    hace 9 años

    Revisa el log de apache-solr, porque el error que retorna es 400 que es un bad request, revisando el log de solr puedes detectar cual es el problema exactamente.

Curso de Python y Django 2016

Curso de Python y Django 2016

Aprende Python desde cero y crea tu primera aplicación web completa en Django. Entiende las bases del lenguaje, sus funciones, conoce cómo conectarte a bases de datos y termina creando una API REST de manera profesional para tu app.

Curso de Python y Django 2016
Curso de Python y Django 2016

Curso de Python y Django 2016

Aprende Python desde cero y crea tu primera aplicación web completa en Django. Entiende las bases del lenguaje, sus funciones, conoce cómo conectarte a bases de datos y termina creando una API REST de manera profesional para tu app.