Django haystack过滤搜索索引

时间:2013-04-05 06:11:20

标签: django python-2.7 django-haystack whoosh

我的搜索工作正常。但在我的模型中,我有一个名为is_active的布尔字段。

我希望只有当is_active为True时才会进行搜索,但我一直在测试它而没有任何满意的响应。

我的search_indexes.py:

    from haystack.indexes import *
    from haystack.sites import site
    from core.models import AnuncioSolucao

    class AnuncioSolucaoIndex(RealTimeSearchIndex):
        text = CharField(document=True,use_template=True)

    site.register(AnuncioSolucao,AnuncioSolucaoIndex)

这种方式有效,但也带给我所有的is_active == False。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

SearchIndex API上有一个名为read_queryset的方法。我只需要覆盖它:

class AnuncioSolucaoIndex(RealTimeSearchIndex):
    text = CharField(document=True,use_template=True)
    def read_queryset(self):
        super(AnuncioSolucaoIndex,self).read_queryset()
        return AnuncioSolucao.objects.filter(is_active=True)