django-haystack:无法将文档添加到Solr:[原因:找不到404错误]
我使用django-haystack(v 2.3.1)和solr(v 5.0.0)和pysolr(v 3.0.0 )。我一直在关注tutorial,并设置了类似的myapp/search_indexes.py
和search/indexes/myapp/mymodel_text.txt
文件。django-haystack:无法将文档添加到Solr:[原因:找不到404错误]
./manage.py build_solr_schema > schema.xml
工作正常,我已将其复制到$ SOLR_HOME/conf/schema.xml中。
当我尝试./manage.py rebuild_index
时会出现问题。首先,我被要求确认:
警告:这将在连接“默认”中将搜索索引中的所有内容删除。
之后的选择是通过rebuild_index
命令从备份中恢复或重建。
您确定要继续吗? [Y/N]Ÿ
然后,它失败:
从索引中删除所有文件,因为你这么说。
无法清除Solr索引:[原因:找不到错误404]
删除所有文档。
索引6个故事
无法将文件添加到Solr:原因:错误404未找到]
我的连接设置为:
#settings.py
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
'URL': 'http://127.0.0.1:8983/solr',
},
}
如果我浏览到这个网址我可以请参阅solr管理页面。我已经确定端口8983对于solr是开放的(对于Django开发服务器也是8000)。
我觉得我可能没有提供足够的连接信息,但还有什么要检查的?
UPDATE:
虽然我解决了这个问题,有更多的惊喜,这是使用Solr的(v.4.7.0)代替所有固定由,因为Django的草垛是没有准备好Solr的5(有与此相关的一个问题,但我再也找不到它github
钍指定核心请键入user366722以建议在设置中指定核心。但是,我忽略了一个更基本的步骤创建的核心!
解决方案:
创建芯,指定所述芯的名称(例如,“默认”)和端口(例如8983):
$bin/solr create_core -c default -p 8983
然后,只需在您的草垛URL设置指定的核心(例如 '默认')的名称:
#settings.py
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
'URL': 'http://127.0.0.1:8983/solr/default',
},
}
完成!
现在,我得到
删除所有文件从你的索引,因为你这么说。
删除所有文件。
索引3层
UPDATE:
在写作的时候,我也切换到SOLR 4.7.0,使其工作,如大海捞针还没有准备好Solr的5.x的
bin/solr create_core -c default -p 8983 你能告诉我哪个bin?!谢谢 – 2016-08-29 14:29:24
哪个bin取决于你安装的位置 – ZG101 2017-06-04 00:22:27