2

私は人の名前の検索機能に取り組んでいます。これは、ビジネスを行っている州でフィルタリングできます。一部の人々は複数の地域でビジネスを行っているので、私の質問は、フィールド内の任意の州で正確な検索を実行できるように、州のリストをフィールドに保存するにはどうすればよいですか?

サンプルデータ:

| | 人物名 | 州 |
|=============|============|
| | ジョン・ドウ | カリフォルニア州、ネバダ州、アリゾナ州 |
| | ジョン・スミス | ニューヨーク、ニュージャージー州 |
| | ... |
|=============|============|

ここに私のコードがあります: # search_indexes.py

class ProfileIndex(RealTimeSearchIndex):
    text = indexes.CharField(document=True) # the person's name
    state = indexes.CharField(faceted=True)


    def prepare_text(self, profile):
        return profile.display_name

    def prepare_state(self, profile):
        return ???????


# search code
search_string = "John"
search_state = "CA"
search_results = SearchQuerySet().models(Profile) \
            .filter(text=search_string, state=search_state) \
            .load_all()

# Should only return John Doe because of the search_state constraint...

ステミング/ファジーマッチングなどのsolrマジックを行わずに、solrに州名を正確に解析してもらいたい...

これは基本的なリクエストのようですが、何が表示されないのですか?

ありがとう!

4

1 に答える 1

2
state = indexes.MultiValueField()

    def prepare_state(self, obj):
        return [g.pk for g in obj.state_set.all()]
于 2012-04-24T20:15:35.513 に答える