0

django-haystack をセットアップしていますが、質問があります。

私はdjango-profilesを使用しています。これにより、都市、性別などの個別の情報を追加できます。

search_indexes.py検索を実行すると、UserProfileユーザーのユーザー名の結果のみが返されるように見えます。

入力johnしてユーザーのユーザー名が john の場合、それが取得されます。入力Jamesしてユーザーjohnの名がJamesである場合、結果は返されません。

私のsearch_indexes.py

from haystack.indexes import *
from haystack import site
from models import UserProfile

class UserProfileIndex(SearchIndex):
    text = CharField(document=True, use_template=True)
    user = CharField(model_attr='user', use_template=True)

    def prepare_user(self, obj):
        return "%s <%s>" % (obj.user.get_full_name(), obj.user.email)

site.register(UserProfile, UserProfileIndex)
4

4 に答える 4

1

以前は干し草の山のコードを一瞥しただけですが、モデル属性「user」でインデックスを作成しているためではありませんか。つまり、検索されるフィールドはそれだけです。

于 2010-12-09T09:55:38.103 に答える
1

UserProfile_text.txt (SearchIndex テンプレート) の内容は何ですか? それは次のようなものでなければなりません

{{ object.username }}
{{ object.firstname }}
...

そのモデルからインデックスを作成するすべてのフィールドを使用します。ドキュメントを見る

于 2010-12-15T10:00:28.913 に答える
0

キーポイントは

基本的に、インデックスモデルのテンプレートでインデックスを作成するキーワードを定義します

したがって、必要なフィールドをテンプレートファイルに追加してください

于 2011-12-14T18:34:18.757 に答える