django-haystack:无法将文档添加到 Solr:[原因:未找到错误 404]
django-haystack: Failed to add documents to Solr: [Reason: Error 404 Not Found]
我将 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
文件。
./manage.py build_solr_schema > schema.xml
工作正常,我已将其复制到 $SOLR_HOME/conf/schema.xml.
当我尝试 ./manage.py rebuild_index
时出现问题。首先,我被要求确认:
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.
Failed to clear Solr index: [Reason: Error 404 Not Found]
All documents removed.
Indexing 6 stories
Failed to add documents to Solr: [Reason: Error 404 Not Found]
我的连接设置是:
#settings.py
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
'URL': 'http://127.0.0.1:8983/solr',
},
}
如果我导航到此 url,我 可以 看到 solr 管理页面。我已确保端口 8983 已为 solr 打开(以及为 Django 开发服务器打开了 8000)。
我觉得我可能没有提供足够的连接信息,但还有什么要检查的?
更新:
尽管我解决了这个问题,但还有更多问题要解决,所有 由 使用 solr (v.4.7.0) 修复,作为 django- haystack 还没有为 solr 5 做好准备(有一个与此相关的问题,但我无法再在 github.
上找到它
遇到同样的问题并找到答案:
您需要在 URL
中指定核心
感谢user366722建议在设置中指定内核。但是,我忽略了 创建 核心的更基本步骤!
解法:
创建核心,指定核心名称(例如'default')和端口(例如8983):
$bin/solr create_core -c default -p 8983
然后,只需在您的 haystack URL 设置中指定核心名称(例如 'default'):
#settings.py
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
'URL': 'http://127.0.0.1:8983/solr/default',
},
}
完成!
现在,我得到了
Removing all documents from your index because you said so.
All documents removed.
Indexing 3 stories
更新:
在撰写本文时,我还切换到 solr 4.7.0 以使其工作,因为 haystack 还没有为 solr 5.x
做好准备
我将 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
文件。
./manage.py build_solr_schema > schema.xml
工作正常,我已将其复制到 $SOLR_HOME/conf/schema.xml.
当我尝试 ./manage.py rebuild_index
时出现问题。首先,我被要求确认:
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 therebuild_index
command.
Are you sure you wish to continue? [y/N] y
然后,失败了:
Removing all documents from your index because you said so.
Failed to clear Solr index: [Reason: Error 404 Not Found]
All documents removed.
Indexing 6 stories
Failed to add documents to Solr: [Reason: Error 404 Not Found]
我的连接设置是:
#settings.py
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
'URL': 'http://127.0.0.1:8983/solr',
},
}
如果我导航到此 url,我 可以 看到 solr 管理页面。我已确保端口 8983 已为 solr 打开(以及为 Django 开发服务器打开了 8000)。
我觉得我可能没有提供足够的连接信息,但还有什么要检查的?
更新:
尽管我解决了这个问题,但还有更多问题要解决,所有 由 使用 solr (v.4.7.0) 修复,作为 django- haystack 还没有为 solr 5 做好准备(有一个与此相关的问题,但我无法再在 github.
遇到同样的问题并找到答案: 您需要在 URL
中指定核心感谢user366722建议在设置中指定内核。但是,我忽略了 创建 核心的更基本步骤!
解法:
创建核心,指定核心名称(例如'default')和端口(例如8983):
$bin/solr create_core -c default -p 8983
然后,只需在您的 haystack URL 设置中指定核心名称(例如 'default'):
#settings.py
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
'URL': 'http://127.0.0.1:8983/solr/default',
},
}
完成!
现在,我得到了
Removing all documents from your index because you said so.
All documents removed.
Indexing 3 stories
更新:
在撰写本文时,我还切换到 solr 4.7.0 以使其工作,因为 haystack 还没有为 solr 5.x