1

駆け出しのdjangoアプリにhaystack検索を追加し、テンプレート機能を使用してモデルのインデックスを作成することができました。何らかの理由で、このテンプレートインデックスに関連データを追加するのに問題があります。私は次のことを試みています:

{{object.name}}
{% for tag in object.tags.all %}
{{tag.name}}
{% endfor %}

インデックスが正しく追加され、object.nameプロパティで検索結果が得られますが、関連するタグでは得られません。通常のページテンプレートで同じテンプレート構造を使用し、tag.name値が画面に出力されることを確認することで、関係が正しいことを確認しました。

インデックス作成のデバッグを行うにはどうすればよいですか?今のところ単純な検索バックエンドを使用しているので、インデックスはメモリに存在すると思います。

これが私のsearch_indexes.pyです

from data.models import VendingMachine
from haystack.indexes import *
from haystack import site


class VendingMachineIndex(SearchIndex):
    text = CharField(document=True, use_template=True)

site.register(VendingMachine, VendingMachineIndex)

問題のファイルはvendingmachine_text.txtと呼ばれ、templates / search / indexes / data /にあります。ここで、dataはアプリ名です。

4

1 に答える 1

1

問題は「単純な」検索バックエンドにあると思います。これは新しく、検索機能を偽造する場合にのみ有効です。whoosh、sorl、またはxapianで試してください。

私は見てきましたhaystack/backends/simple.py。このバックエンドはORMベースであり、メモリ内の検索インデックスはありません。モデルフィールドによる検索のみが機能します。

于 2011-02-20T21:30:19.607 に答える