3

属性を使用して django-haystack で全文検索結果をフィルタリングする方法の例を誰かに教えてもらえますか? 私は彼らのウェブサイトでチュートリアルを実行しましたが、ヘイスタックの使用方法についてはまだ確信が持てません.

たとえば、クラス Product があるとします。

class Product(models.Model):
    title = models.CharField(max_length=200)
    description = models.TextField()
    category = models.CharField(max_length=10)
    color = models.CharField(max_length=10)

タイトルと説明で全文検索し、カテゴリと色でフィルタリング (フリー テキストではなく、ドロップダウン リストに基づく) を提供したい場合、何をする必要がありますか? haystack に付属のフォームとビューを使用できますか?

ありがとう。

4

2 に答える 2

6

django-haystack Web サイトのファセット チュートリアル/ドキュメントをご覧になりましたか? Note入門チュートリアルで紹介したモデルの作成者に基づくフィルタリングの例について説明します。

haystack や検索とは別のオプションとしてdjango-filter、Alex Gaynor によるものがあります。インデックスではなく、モデルの内容に基づいてフィールドをフィルター処理できます。したがって、 で索引付けされていないモデルで使用できますdjango-haystackここでリポジトリをチェックアウトできます。doc フォルダーには優れたドキュメントがあり、含まれているテストはすべての機能を示しています。

于 2009-12-24T08:06:50.053 に答える
0

干し草の山ファセットを追加する方法を要約すると

  1. ファセット フィールドをインデックス モデルに追加する必要があります
title = CharField(model_attr='title', faceted=True)
 description = CharField(model_attr='description', faceted=True)
  1. クエリセットをに変更します
  sqs = SearchQuerySet().facet('タイトル').facet('説明')
  1. haystack が urls.py で提供する検索フォームとビューのファセット バージョンを使用する これを使用する
  url(r'^$', FacetedSearchView(form_class=FacetedSearchForm, searchqueryset=sqs), name='haystack_search'),
  1. このhttp://docs.haystacksearch.org/dev/faceting.html#display-the-facets-in-the-templateのようにテンプレートにファセット部分を追加します

  2. インデックスを再構築して、ファセットの効果を確認します

 
   python manage.py rebuild_index
于 2011-12-10T23:45:02.777 に答える