我有具有以下SearchIndex一個草垛搜索:Django的草堆精確過濾
class GrantIndex(indexes.SearchIndex): """ This provides the search index for the Grant application. """ text = indexes.CharField(document=True, use_template=True) year = indexes.IntegerField(model_attr='year__year') date = indexes.DateField(model_attr='date') program = indexes.CharField(model_attr='program__area') grantee = indexes.CharField(model_attr='grantee') amount = indexes.IntegerField(model_attr='amount') site.register(Grant, GrantIndex)
如果我想搜索過濾掉不屬於「健康」的程序,我運行以下查詢:
from haystack.query import SearchQuerySet sqs = SearchQuerySet() sqs = sqs.filter(program='Health')
不幸的是,這也產生來自程序「健康\其他」和「健康\心血管」的對象。如何停止搜索以允許其他程序進入?
我用Xapian運行Ubuntu 9.10作爲我的搜索後端。
根據文檔和實際情況,過濾器(程序=「健康」)和過濾器(程序_exact =「健康」)是相同的。 – blackrobot 2010-01-29 06:44:31