当前位置: 首页 > 知识库问答 >
问题:

尝试使用Haystack和Solr构建架构时出错

鄢开诚
2023-03-14

我一直在遵循“Django by example”的教程,该教程介绍了Solr和Haystack,但遇到了一个问题。我已在settings.py中对已安装的_应用程序进行了必要的更改,并添加了以下内容:

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_index.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是通过自制软件安装的。

共有2个答案

柳志专
2023-03-14

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

“引擎”:“haystack.backends.solr_backends。SolrEngine',

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

阳兴朝
2023-03-14

这个问题通常发生在第一次将干草堆添加到项目中时。

1.您是否在django haystack签出/安装中使用haystack目录?

2.你的PYTHONPATH上有haystack目录吗?或者,是否将haystack符号链接到您的项目中?

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

4.仔细检查以确保没有循环导入。(即模块A试图从模块B导入,而模块B试图从模块A导入)

 类似资料:
  • 当我尝试构建solr架构时,出现以下错误: 也许这些信息会很有用: MySite/settings.py文件: 博客/search_indexes.py文件: blog/templates/search/index/blog/post_text.txt文件: 我正在使用Apache Solr 4.10.4、Python 3.4.5和Django 1.11.5。当我试图导入干草堆在Python控制台

  • 在本章中,我们将讨论Apache Solr的架构。 下图显示了Apache Solr的体系结构的框图。 Solr架构 - 构件块 以下是Apache Solr的主要构建块(组件) 请求处理程序 - 发送到Apache Solr的请求由这些请求处理程序处理。请求可以是查询请求或索引更新请求。根据这些请示的要求来选择请求处理程序。为了将请求传递给Solr,通常将处理器映射到某个URI端点,并且它将为指

  • 我使用gradle创建了一个简单的java项目,从“gradle init——类型java应用程序”开始。 主java文件的内容-“App.java”: 文件“build.gradle”的内容: gradle似乎已成功下载log4j jar文件: 在~/中有一组log4j jar/pom文件。gradle目录。当我尝试生成时,出现以下生成错误: 我对gradle/java是新手。任何帮助都将不胜感

  • 问题内容: 我正在尝试使用PyInstaller 1.5编译PyQt程序。当我使用– onedir(默认设置)时,以下两个程序对我来说都工作正常,但这会创建相当大的程序。我想使用– onefile选项,但是在运行创建的onefile应用程序时,出现错误消息: 这两个都发生此错误: 和这个: 有人有什么想法吗? 问题答案: 1,Pyinstaller不会创建比–onedir小的–onefile。运行

  • 问题内容: 我收到一个错误,指示缺少in 。这是我的网络服务代码: 这是我的: 添加应用程序类无效: 我仍然收到此错误: UPDATE2: 现在我从浏览器执行GET请求时收到此错误 问题答案: 用(或其他字符串)注释您的班级。