【问题标题】:Django Haystack: error trying to build solr schemaDjango Haystack:尝试构建 solr 架构时出错
【发布时间】:2012-10-15 01:22:15
【问题描述】:

我在尝试运行 ./manage.py build_solr_schema 时遇到以下错误

NotImplementedError: Subclasses must provide a way to build their schema.

这是我的两个搜索索引的样子:

class BookSearchIndex (SearchIndex):
    text = CharField(document=True, use_template=True)
    title = CharField(model_attr='title_web', boost=1.125)

    def index_queryset(self):
        return Book.objects.active().filter(publish_level='published')

site.register(Book, BookSearchIndex)


class AuthorSearchIndex (SearchIndex):
    text = CharField(document=True, use_template=True)
    name = CharField(model_attr='name_display', boost=1.5)

    def index_queryset(self):
        return Author.objects.approved()

    def prepare(self, obj):
        data = super(AuthorSearchIndex, self).prepare(obj)
        data['boost'] = 1.5
        return data

site.register(Author, AuthorSearchIndex)

我在本地运行它并使用简单的后端。创建作者索引后,我能够运行build_solr_schema。但是当我设置书籍索引并尝试再次运行它时,我得到了提到的错误。

Django 1.4.2, 干草堆 1.2.7

有什么想法吗?

【问题讨论】:

    标签: django search solr django-haystack


    【解决方案1】:

    我在本地运行它并使用 simple 后端。

    您必须选择 solr 后端并配置 haystack 以使用 build_solr_schema 命令。

    HAYSTACK_SITECONF = 'search_sites'
    HAYSTACK_SEARCH_ENGINE = 'solr'
    HAYSTACK_SOLR_URL = '0.0.0.0:8983' #your solr server's address
    

    http://django-haystack.readthedocs.org/en/v1.2.7/installing_search_engines.html#solr 用于安装 solr 和 http://django-haystack.readthedocs.org/en/v1.2.7/tutorial.html#modify-your-settings-py 用于配置干草堆

    另外,我假设 haystack b/c 的 1.2.7 版本在 haystack 的 2.0.0 beta 版本中我遇到了 build_solr_schema 返回无效 schema.xml 的问题。

    【讨论】:

    • 从 django-haystack 2.0 开始不再使用 HAYSTACK_SITECONF 和其他设置
    • 我的答案包括它所针对的 haystack 版本——我忽略了 v2 b/c,它当时是 beta-buggy。不过需要注意的是,v2.+ 是目前的版本,并且发生了很多变化。
    猜你喜欢
    • 2016-10-15
    • 1970-01-01
    • 2012-11-28
    • 1970-01-01
    • 2017-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-26
    相关资源
    最近更新 更多