尝试使用Haystack和Solr

时间:2016-06-14 13:59:00

标签: python django solr

我一直在关注' Django的教程'介绍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 /本地的/ opt / solr的/服务器/ solr的/博客/ CONF

我在这里想念的是什么?感谢

编辑:我想补充一点,我已经安装了django-haystack和pysolr与venv,但是如果我做pip冻结就会出现。 Solr是通过Homebrew安装的。

2 个答案:

答案 0 :(得分:1)

首次将Haystack添加到项目中时,通常会出现此问题。

1.您在django-haystack checkout / install中使用haystack目录吗?

2. PYTHONPATH上的干草堆目录?或者,haystack符号链接到您的项目中吗?

3.启动Django shell(./manage.py shell)并尝试import haystack。您可能会收到不同的,更具描述性的错误消息。

4.Double-check以确保您没有循环导入。 (即模块A尝试从模块B导入,模块B尝试从模块A导入。)

答案 1 :(得分:0)

所以我最终发现这只是一个错字错误

'ENGINE':'haystack.backends.solr_backends.SolrEngine',

这应该是'solr_backend'而不是复数:|