我们的网站使用Python 3.6.5和:
我用django-haystack(python manage.py build_solr_schema> schema.xml)生成了schema.xml并将其粘贴到websolr(heroku版本)中。
当我运行以下命令时:
heroku run python manage.py rebuild_index --app terradiem
我收到以下错误:
无法将文档添加到Solr:Solr响应错误(HTTP 400):[原因:错误:[doc = naturalearth.naturalearthmerged.12001]未知字段'django_ct']
回溯(最近通话最近): 更新文件“ /app/.heroku/python/lib/python3.6/site-packages/haystack/backends/solr_backend.py”,第72行 self.conn.add(docs,commit = commit,boost = index.get_field_weights())
添加文件“ /app/.heroku/python/lib/python3.6/site-packages/pysolr.py”,第918行 overwrite = overwrite,handler = handler)
文件_update中的文件“ /app/.heroku/python/lib/python3.6/site-packages/pysolr.py”,第500行
返回self._send_request('post',path,message,{'Content-type':'text / xml; charset = utf-8'})
文件_send_request中的文件“ /app/.heroku/python/lib/python3.6/site-packages/pysolr.py”,第412行 提高SolrError(error_message%(resp.status_code,solr_message)) pysolr.SolrError:Solr响应错误(HTTP 400):[原因:错误:[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"/>
有任何线索吗?
答案 0 :(得分:0)
我无法使其与Solr一起使用。
如果对其他人有用,这是我设法让Django和Heroku与django-haystack一起工作的方法:
我改用Heroku Bonsai和ElasticSearch。
版本组合非常复杂,因为Haystack尚不支持Elasticsearch 5.x,6.x或7.x,而用于多个租户的盆景计划仅支持5.4.3 / 6.5.4 / 7.2.0版本>
因此,我安装了支持ElasticSearch 5的django-haystack的fork: https://github.com/tehamalab/django-haystack-es
并在Heroku中创建插件,如下所示:
heroku addons:create bonsai:staging -a terradiem --version=5.6.16
现在一切都很好。