django-haystack + Whoosh SearchQuerySet().all() 总是 None
django-haystack + Whoosh SearchQuerySet().all() always None
我正在使用:
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 实现的一些问题,但我不确定问题是否出在我的代码中
请看我的回答:
Django-Haystack with Woosh 中存在一个错误,这意味着如果您使用 Ngram 或 EdgeNGram 字段,SearchQuerySet().count() 和 SearchQuerySet().all().count() 将始终 return 0,除非您指定过滤器。
例如
SearchQuerySet().all().count()
>> 0
SearchQuerySet().all().exclude(content='thisshouldnotmatchanything').count()
>> 14 [the total number of indexed objects]
我正在使用:
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 实现的一些问题,但我不确定问题是否出在我的代码中
请看我的回答:
Django-Haystack with Woosh 中存在一个错误,这意味着如果您使用 Ngram 或 EdgeNGram 字段,SearchQuerySet().count() 和 SearchQuerySet().all().count() 将始终 return 0,除非您指定过滤器。
例如
SearchQuerySet().all().count()
>> 0
SearchQuerySet().all().exclude(content='thisshouldnotmatchanything').count()
>> 14 [the total number of indexed objects]