【发布时间】:2016-10-15 07:31:20
【问题描述】:
我一直在关注“Django by example”的教程,该教程介绍了 Solr 和 Haystack,但遇到了问题。我已在 settings.py 中对 INSTALLED_APPS 进行了必要的更改,并添加了以下内容:
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.solr_backends.SolrEngine',
'URL': 'http://127.0.0.1:8938/solr/blog'
},
}
然后我运行
python manage.py build_solr_schema
我得到了这个错误
ImportError: No module named 'haystack.backends.solr_backends'
这是我的 search_indexes.py 文件
from haystack import indexes
from .models import Post
class PostIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
publish = indexes.DateTimeField(model_attr='publish')
def get_model(self):
return Post
def index_queryset(self, using=None):
return self.get_model().published.all()
当我运行 django shell 时,我可以很好地导入 haystack,但是当我运行以下命令时:
from haystack.query import SearchQuerySet
sqs = SearchQuerySet().all()
sqs.count()
进入第二行后我得到了完全相同的错误。
我试过重启 Solr,还是不行。
我让 Solr 在本地正常工作,并在管理员中创建了一个新核心,并在此处设置了所有文件,并从安装附带的示例文件夹中复制了所有必需的文件:
/usr/local/opt/solr/server/solr/blog/conf
我在这里错过了什么?谢谢
编辑:我想补充一点,我已经安装了带有 venv 的 django-haystack 和 pysolr,但是如果我执行 pip freeze,它们都会出现。 Solr 是通过 Homebrew 安装的。
【问题讨论】: