私は人の名前の検索機能に取り組んでいます。これは、ビジネスを行っている州でフィルタリングできます。一部の人々は複数の地域でビジネスを行っているので、私の質問は、フィールド内の任意の州で正確な検索を実行できるように、州のリストをフィールドに保存するにはどうすればよいですか?
サンプルデータ:
| | 人物名 | 州 | |=============|============| | | ジョン・ドウ | カリフォルニア州、ネバダ州、アリゾナ州 | | | ジョン・スミス | ニューヨーク、ニュージャージー州 | | | ... | |=============|============|
ここに私のコードがあります: # 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に州名を正確に解析してもらいたい...
これは基本的なリクエストのようですが、何が表示されないのですか?
ありがとう!