私はアプリケーションでインデックスと検索にWhooshとWhooshを使用しようとしています。 インデックスを再構築すると、結果は次のようになります。Django-Haystack + Whoosh - 空のインデックスの後にrebuild_index
すべてのドキュメントが削除されました。バックエンドの更新:デフォルトのデフォルト:バックエンド は再構築を必要としません。
を、これは私にSearchIndexクラスでスキップ:
class BlogIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True, template_name="snip_text.txt")
headline = indexes.CharField(model_attr="headline", null=True)
body = indexes.CharField(model_attr="body")
def get_model(self):
return Snip
def index_queryset(self, using=None):
"""Used when the entire index for model is updated."""
return self.get_model().objects.filter(date__lte=timezone.now())
これは(テンプレート/検索/インデックス/ myappの中にあります/)私のblog_text.txtファイルです:私は追加
{{ object.headline }}
{{ object.body }}
haystackをINSTALLED_APPSに設定し、その設定ファイルを設定ファイルに保存します。 私のDBはsqliteです(開発用です...)。
私は間違っていますか?
ありがとうございます!
R
UPDATE
このような管理コマンドを作成します(あなたが望むようにファイルに名前を付ける - 例えばmy_update_index.py)
from haystack.management.commands import update_index
class Command(update_index.Command):
pass
はclear_indexコマンドに同じ操作を行います。
rebuild_indexコマンドはclear_indexとupdate_indexを呼び出します。したがって、新しいrebuildコマンドを作成しても、間違ったコマンドが検索されます。
インデックスを再構築する場合は、両方のコマンドを実行してください。それ以外の場合は、update_indexコマンドを実行してください。
もう1つ注意してください:テンプレートtxtファイルのフォルダの名前は、インデックスを作成しようとしているモデルとまったく同じでなければなりません(インデックスクラスのどこに書かれているかは関係ありません)。 )。
あなたは絶対に正しいですが、私は両方を試してもまだ成功していません。たぶん私は何か間違っていました...私はimportと 'classコマンド(rebuild_index.Command):pass'を使ってblog_rebuild.pyというファイルを作成します。 – Rani
' update_index'のために同じことをする必要があります - これはHaystackの 'rebuild_index '。 – solarissmoke
それは動作します!私のblog_rebuildはまだ何もしませんが、blog_update_index.pyは動作します。大丈夫ですか? – Rani