Websorl возвращает ошибку "неизвестное поле 'django_ct'" при сборке schema.xml - PullRequest
0 голосов
/ 25 сентября 2019

Наш веб-сайт работает с Python 3.6.5 и:

  • django == 1.11.20
  • django-haystack == 2.8.1
  • certifi == 0.0.8
  • urllib3 <1.25,> = 1.21.1
  • pysolr == 3.8.1

Я создал файл schema.xml с помощью django-haystack (python manage.py build_solr_schema> schema.xml) и вставил его в websolr (версия heroku).

Когда я запускаю следующую команду:

heroku run python manage.py rebuild_index --app terradiem

Я получаю следующую ошибку:

Не удалось добавить документы в Solr: Solr ответил с ошибкой (HTTP 400): [Причина: ОШИБКА: [doc = naturalearth.naturalearthmerged.12001] неизвестное поле 'django_ct']

Traceback(последний вызов был последним): файл "/app/.heroku/python/lib/python3.6/site-packages/haystack/backends/solr_backend.py", строка 72, в обновлении self.conn.add (документы, коммит= commit, boost = index.get_field_weights ())

Файл "/app/.heroku/python/lib/python3.6/site-packages/pysolr.py", строка 918, в add overwrite = overwrite, обработчик = обработчик)

File "/app / .heroku / python / lib / python3.6 / site-packages / pysolr.py ", строка 500, в _update

return self._send_request ('post', path, message, {'Content-введите ':' text / xml;charset = utf-8 '})

Файл "/app/.heroku/python/lib/python3.6/site-packages/pysolr.py", строка 412, в _send_request поднять SolrError (error_message% (resp.status_code, solr_message)) pysolr.SolrError: Solr ответил с ошибкой (HTTP 400): [Причина: ERROR: [doc = naturalearth.naturalearthmerged.12001] неизвестное поле 'django_ct']

Я думаю, это связано со следующими строками в schema.xml:

<field name="id" type="string" indexed="true" stored="true" multiValued="false" required="true"/>
<field name="django_ct" type="string" indexed="true" stored="true" multiValued="false"/>
<field name="django_id" type="string" indexed="true" stored="true" multiValued="false"/>

Любая подсказка?

1 Ответ

0 голосов
/ 29 сентября 2019

Я не могу заставить его работать с Solr.

Если это может быть полезно кому-то еще, вот как мне удалось заставить Django & Heroku работать с django-haystack:

Iпереключился на Heroku Bonsai и ElasticSearch.

Комбинации версий были очень сложными, поскольку Haystack еще не поддерживает Elasticsearch 5.x, 6.x или 7.x, когда Bonsai для нескольких арендаторов планируют поддерживать только версии 5.4.3/ 6.5.4 / 7.2.0

Поэтому я установил вилку django-haystack, поддерживающую ElasticSearch 5: https://github.com/tehamalab/django-haystack-es

, и создал дополнение в Heroku, как показано ниже:

heroku addons:create bonsai:staging -a terradiem --version=5.6.16

Теперь все хорошо.

...