Django:关于使用 Solr 和 Haystack 的问题

Posted

技术标签:

【中文标题】Django:关于使用 Solr 和 Haystack 的问题【英文标题】:Django: Questions About Using Solr and Haystack 【发布时间】:2016-05-07 21:25:23 【问题描述】:

所以我做了 pip install django-haystack 或我的项目 virtualenv 文件夹中的任何命令,并且我还安装了 solr,但现在我对该怎么做有点困惑。

我不断收到错误消息,说 solr 后端需要安装 pysolr?我很困惑我在哪里运行这个命令? "./manage.py build_solr_schema"

我一直在尝试参考 haystack 指南,但它有点含糊。请帮帮我!!谢谢

【问题讨论】:

【参考方案1】:

假设您有 Solr 4.10.4 并且您使用 example 目录,其中包含可立即使用的 Solr 配置。

要安装haystack,如果您使用的是virtualenv,请先激活它然后运行

pip install django-haystack

要使用 Solr 后端,您还需要在 virtualenv 中安装 pysolr 模块

pip install pysolr

您必须在 settings.py 文件中将 haystack 添加到 INSTALLED_APPS

INSTALLED_APPS = (
    # ...
    'haystack',
)

您必须在 settings.py ifle 中设置 haystack 使用的搜索引擎后端:

HAYSTACK_CONNECTIONS = 
    'default': 
    'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
    'URL': 'http://127.0.0.1:8983/solr/the_core_you_created'
   ,

the_core_you_created 是您为应用创建的Solr core。

现在,为了构建搜索架构,您必须注册要存储在搜索引擎中的模型,因此您必须创建 SearchIndexes。 创建搜索索引后,您可以构建搜索架构,运行:

python manage.py build_solr_schema

并将结果复制到solr/the_core_you_created/conf/schema.xml

现在你必须重建索引:

python manage.py rebuild_index

然后创建一个搜索视图和一个搜索模板。

您可以在 haystack docs 和 - 更简洁的 - 在 Django by example book 中找到详细步骤。

【讨论】:

以上是关于Django:关于使用 Solr 和 Haystack 的问题的主要内容,如果未能解决你的问题,请参考以下文章

使用 Django 自动设置 Apache Solr - AWS Elastic Beanstalk 上的 Oscar

关于 SOLR 及其实际工作原理的一些问题!

Django haystack+solr搜索引擎部署的坑.

关于Solr的使用总结的心得体会

第15篇-使用Django进行ElasticSearch的简单方法

关于Solr6.0中solrj使用简单例子