2011-02-03 53 views
0

我想要从两个不同的字段搜索索引模型的任何选项。例如,有时按名称搜索,有时按职业搜索。有人知道采取正确的方法吗?这是我目前search_indexes.py文件:干草堆搜索非主要字段

class JobIndex(indexes.SearchIndex): 
    text = indexes.CharField(document=True) 
    name = indexes.CharField(model_attr='name') 
    occupation = indexes.CharField(model_attr='occupation') 

    def prepare(self, obj): 
     self.prepared_data = super(JobIndex, self).prepare(obj) 
     self.prepared_data['text'] = obj.name 
     return self.prepared_data 
    def get_queryset(self): 
     return Job.objects.filter(status='open') 
site.register(Job, JobIndex) 

回答

0

正确的方法是使用具有过滤器SearchQuerySet:http://docs.haystacksearch.org/dev/searchqueryset_api.html

在你的情况,它会看起来像:

from haystack.query import SearchQuerySet 

sqs = SearchQuerySet() 

# Find people named Bob 
sqs.filter(name="Bob") 
# Find people who are developers 
sqs.filter(occupation="developer") 
# Or chain searches: Find developers named Bob 
sqs.filter(occupation="developer").filter(name="Bob") 
相关问题