尝试运行./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
有什么想法吗?
答案 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的问题。