2

実行しようとすると、次のエラーが発生します./manage.py build_solr_schema

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

2つの検索インデックスは次のようになります。

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、Haystack 1.2.7

何か案は?

4

1 に答える 1

1

これをローカルで実行し、シンプルなバックエンドを使用しています。

build_solr_schemaコマンドを使用するには、solrバックエンドを選択し、haystack を構成する必要があります。

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

solr のインストールについては http://django-haystack.readthedocs.org/en/v1.2.7/installing_search_engines.html#solr および http://django-haystack.readthedocs.org/en/v1.2.7/tutorial.html#参照 してください。 ヘイスタックを設定するためのmodify-your-settings-py

また、haystack の 2.0.0 ベータ版で haystack b/c のバージョン 1.2.7 を想定していますが、 build_solr_schemaが無効な schema.xml を返すという問題がありました。

于 2012-11-05T17:02:48.360 に答える