django-haystack + Whoosh SearchQuerySet()。all()始终为None

时间:2016-08-12 08:08:06

标签: python django django-haystack whoosh

我正在使用:

django:1.9.7
django-haystack:2.5.0
哇:2.7.4

search_index.py

class ProfileIndex(indexes.SearchIndex, indexes.Indexable):
    text = indexes.CharField(document=True, use_template=True)
    last_name= indexes.CharField(model_attr='last_name')
    content_auto = indexes.EdgeNgramField(model_attr='first_name')
    def get_model(self):
        return User
    def index_queryset(self, using=None):
        """Used when the entire index for model is updated."""
        return self.get_model().objects.all()  

user_text.txt

{{ object.last_name }}
在views.py中的

我尝试:
SearchQuerySet().count() => returns 0
SearchQuerySet().all() => returns None

我已经阅读了django-haystack中最新的Whoosh实现的一些问题,但我不确定问题是否在我的代码中

1 个答案:

答案 0 :(得分:0)

请在此处查看我的回答:

Django Haystack & Whoosh Search Working, But SearchQuerySet Return 0 Results

Django-Haystack与Woosh有一个错误,意味着如果你使用Ngram或EdgeNGram字段SearchQuerySet()。count()和SearchQuerySet()。all()。count()将始终返回0,除非你指定一个过滤。

e.g。

SearchQuerySet().all().count()
>> 0

SearchQuerySet().all().exclude(content='thisshouldnotmatchanything').count()
>> 14 [the total number of indexed objects]