2016-08-12 2 views
1

J'utilise.django-botte de foin + Whoosh SearchQuerySet() tout() toujours Aucun

django: 1.9.7
django-botte de foin: 2.5.0
whoosh: 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 }} 

dans le views.py i essayer:
SearchQuerySet().count() => returns 0
SearchQuerySet().all() => returns None

J'ai lu quelques problèmes avec la dernière mise en œuvre de Whoosh dans django-botte de foin, mais je ne suis pas sûr si le problème est dans mon code

+0

Avez-vous exécuté 'manage.py rebuild_index'? – solarissmoke

+0

Oui, j'ai changé la structure du ProfileIndex plusieurs fois (avec model_attr différent), changé le fichier modèle, mais toujours pas de changement – lcadc17

+0

Lorsque vous reconstruisez l'index, il devrait vous dire combien d'éléments ont été indexés. Que dit-il là? – solarissmoke

Répondre

0

S'il vous plaît voir ma réponse ici:

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

Il y a un bogue dans Django-Haystack avec Woosh cela signifie que si vous utilisez un Ngram ou EdgeNG champ ram SearchQuerySet(). count() et SearchQuerySet(). all(). count() retournera toujours 0 sauf si vous spécifiez un filtre.

par exemple.

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

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