Websorl returns 构建时出现错误“未知字段 'django_ct'” schema.xml
Websorl returns error " unknown field 'django_ct' " when building schema.xml
我们的网站 运行s Python 3.6.5 和:
- django==1.11.20
- django-haystack==2.8.1
- 证书==0.0.8
- urllib3<1.25,>=1.21.1
- pysolr==3.8.1
我用 django-haystack (python manage.py build_solr_schema > schema.xml) 生成了 schema.xml 并将其粘贴到 websolr(heroku 版本)中。
当我运行以下命令时:
heroku run python manage.py rebuild_index --app terradiem
我收到以下错误:
Failed to add documents to Solr: Solr responded with an error (HTTP 400): [Reason: ERROR: [doc=naturalearth.naturalearthmerged.12001] unknown field 'django_ct']
Traceback (most recent call last):
File "/app/.heroku/python/lib/python3.6/site-packages/haystack/backends/solr_backend.py", line 72, in update
self.conn.add(docs, commit=commit, boost=index.get_field_weights())
File "/app/.heroku/python/lib/python3.6/site-packages/pysolr.py", line 918, in add
overwrite=overwrite, handler=handler)
File "/app/.heroku/python/lib/python3.6/site-packages/pysolr.py", line 500, in _update
return self._send_request('post', path, message, {'Content-type': 'text/xml; charset=utf-8'})
File "/app/.heroku/python/lib/python3.6/site-packages/pysolr.py", line 412, in _send_request
raise SolrError(error_message % (resp.status_code, solr_message))
pysolr.SolrError: Solr responded with an error (HTTP 400): [Reason: ERROR: [doc=naturalearth.naturalearthmerged.12001] unknown field '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"/>
有线索吗?
我无法让它与 Solr 一起工作。
如果它对其他人有用,下面是我如何让 Django 和 Heroku 与 django-haystack 一起工作:
我切换到 Heroku Bonsai 和 ElasticSearch。
版本组合非常复杂,因为 Haystack 尚不支持 Elasticsearch 5.x、6.x 或 7.x,而 Bonsai for multiple tenants plan 仅支持版本 5.4.3 / 6.5 .4 / 7.2.0
因此我安装了一个支持 ElasticSearch 5 的 django-haystack 分支:
https://github.com/tehamalab/django-haystack-es
并在 Heroku 中创建如下插件:
heroku addons:create bonsai:staging -a terradiem --version=5.6.16
现在一切都很好。
我们的网站 运行s Python 3.6.5 和:
- django==1.11.20
- django-haystack==2.8.1
- 证书==0.0.8
- urllib3<1.25,>=1.21.1
- pysolr==3.8.1
我用 django-haystack (python manage.py build_solr_schema > schema.xml) 生成了 schema.xml 并将其粘贴到 websolr(heroku 版本)中。
当我运行以下命令时:
heroku run python manage.py rebuild_index --app terradiem
我收到以下错误:
Failed to add documents to Solr: Solr responded with an error (HTTP 400): [Reason: ERROR: [doc=naturalearth.naturalearthmerged.12001] unknown field 'django_ct']
Traceback (most recent call last): File "/app/.heroku/python/lib/python3.6/site-packages/haystack/backends/solr_backend.py", line 72, in update self.conn.add(docs, commit=commit, boost=index.get_field_weights())
File "/app/.heroku/python/lib/python3.6/site-packages/pysolr.py", line 918, in add overwrite=overwrite, handler=handler)
File "/app/.heroku/python/lib/python3.6/site-packages/pysolr.py", line 500, in _update
return self._send_request('post', path, message, {'Content-type': 'text/xml; charset=utf-8'})
File "/app/.heroku/python/lib/python3.6/site-packages/pysolr.py", line 412, in _send_request raise SolrError(error_message % (resp.status_code, solr_message)) pysolr.SolrError: Solr responded with an error (HTTP 400): [Reason: ERROR: [doc=naturalearth.naturalearthmerged.12001] unknown field '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"/>
有线索吗?
我无法让它与 Solr 一起工作。
如果它对其他人有用,下面是我如何让 Django 和 Heroku 与 django-haystack 一起工作:
我切换到 Heroku Bonsai 和 ElasticSearch。
版本组合非常复杂,因为 Haystack 尚不支持 Elasticsearch 5.x、6.x 或 7.x,而 Bonsai for multiple tenants plan 仅支持版本 5.4.3 / 6.5 .4 / 7.2.0
因此我安装了一个支持 ElasticSearch 5 的 django-haystack 分支: https://github.com/tehamalab/django-haystack-es
并在 Heroku 中创建如下插件:
heroku addons:create bonsai:staging -a terradiem --version=5.6.16
现在一切都很好。