Whoosh バックエンドを使用して自分の Web サイトに Haystack 検索を実装しようとしています。haystack アプリを正常にセットアップでき、登録したモデルを検索できますが、別のアプリの search_indexes.py ファイルを作成すると、次の問題が発生します。
メンバーとイベントの 2 つのモデルがあります。両方の search_indexes.py と、対応する /search/... _text.txt ファイルをテンプレート フォルダーに作成します。それから私は使用します./manage.py rebuild_index
次のメッセージが表示されます。
Indexing 8 events
Indexing 5 members
ただし、13 個のインデックス付きアイテムを表示できません。
$> ./manage.py shell
$> from haystack.query import SearchQuerySet
$> sqs = SearchQuerySet().all()
$> print sqs.count()
$> 8
これらは、索引付けされた 8 つのイベントです。したがって、ウェブサイトからはイベントのみを検索でき、メンバーは検索できません。「イベント」アプリ フォルダーから search_indexes.py ファイルを削除し、すべてをやり直すと、5 人のメンバーが正しくインデックス付けされ、通常どおり検索できるようになります。この理由は何でしょうか?
更新: search_indexes.py ファイルを他のアプリにも含めて、適切にインデックスが作成されているかどうかを確認しました。インデックスを再構築すると、次のメッセージが表示されます。
Indexing 8 events.
Indexing 4 guests.
Indexing 5 members.
Indexing 8 sponsors.
現在、すべてのイベントとメンバーをインデックス化していますが、ゲストとスポンサーはインデックス化していません。イベントとメンバーは検索できますが、他の 2 つは検索できません (SearchQuery API と Web サイトの両方を使用)
更新:のソースを変更することで問題が解決したようですhaystack.backends.whoosh_backend
。答えを見てください