views.py (相关部分)
srch = request.GET.get('search', "")
sqs = SearchQuerySet().filter(has_title=True)
clean_query = sqs.query.clean(srch)
results = sqs.raw_search(clean_query)search_indexes.py
from haystack.indexes import *
from haystack import site
from myproject.myapp.models import Person
class PersonIndex(SearchIndex):
text = CharField(document=True, use_template=True)
name = CharField(model_attr='name')
has_title = BooleanField(model_attr='has_title')
site.register(Person, PersonIndex)models.py
class Person(models.Model):
name = models.CharField(max_length=50)
has_title = models.BooleanField()
def __unicode__(self):
return u'%s' % self.name在搜索时,我从完整的模型中获得结果,而不是只有那些条目是has_title is True。在应用过滤器之后,我还运行了python manage.py rebuild_index。为什么过滤器不能工作?
我正在使用Whoosh 2.4.1,Django-haystack 1.2.7和Django 1.4。
如果有人能够确认他们可以成功地将SearchQuerySet().filter与Whoosh 2.4和Django-haystack 1.2.7结合使用,这将是一个很大的帮助。
发布于 2013-01-19 14:21:03
似乎raw_search(clean_query)只是再次返回sqs中的每一项(不知道为什么),使用filter(content=clean_query)来获得预期的结果。
srch = request.GET.get('search', "")
sqs = SearchQuerySet().filter(has_title=True)
clean_query = sqs.query.clean(srch)
result = sqs.filter(content=clean_query)https://stackoverflow.com/questions/14216207
复制相似问题