Django Haystack:尝试构建solr架构时出错

时间:2012-10-24 22:26:05

标签: django search solr django-haystack

尝试运行./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

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

  

我在本地运行并使用简单后端。

您必须选择 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

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