我有一个干草堆搜索,它具有以下 SearchIndex:
类 GrantIndex(indexes.SearchIndex): """ 这为 Grant 应用程序提供了搜索索引。 """ text = index.CharField(document=True, use_template=True) 年 = 索引.IntegerField(model_attr='year__year') 日期 = 索引.DateField(model_attr='date') 程序 = 索引.CharField(model_attr='program__area') 被授权人 = 索引.CharField(model_attr='grantee') 金额 = 索引.IntegerField(model_attr='amount') site.register(Grant, GrantIndex)
如果我想搜索过滤掉任何不是“健康”的程序,我运行以下查询:
从 haystack.query 导入 SearchQuerySet sqs = SearchQuerySet() sqs = sqs.filter(program='健康')
不幸的是,这也会从程序“Health\Other”和“Health\Cardiovascular”中生成对象。如何阻止搜索允许其他程序进入?
我使用 Xapian 作为搜索后端运行 Ubuntu 9.10。