2014-02-18 6 views
0

Я последовал за учебник Haystack настроить для СвистСтог-Свист не индексировать какие-либо документы

>>> pip install whoosh 

settings.py

import os 
HAYSTACK_CONNECTIONS = { 
    'default': { 
     'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine', 
     'PATH': os.path.join(os.path.dirname(__file__), 'whoosh_index'), 
    }, 
} 

и я получаю пустой список

>>> list(ix.searcher().documents()) 
[] 

Следующий мой код для searcher_i ndexes.py

from haystack import indexes 
from view_links.models import Projdb 

class ProjdbIndex(indexes.SearchIndex, indexes.Indexable): 
    text = indexes.CharField(document=True, use_template=True) 
    title = indexes.CharField(model_attr='title') 
    author = indexes.CharField(model_attr = 'owner') 
# pub_date = indexes.DateTimeField(model_attr='date_start') 

    def get_model(self): 
     return Projdb 

    def index_queryset(self,using=None): 
     """Used when the entire index for model is updated.""" 
     return self.get_model().objects.all()#filter(pub_date__lte=datetime.datetime.now()) 

Я ранее был в состоянии получить результаты для elasticsearch, но когда я перешел к Свист я не подвожу никаких результатов.

Спасибо за ваше время. Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

EDIT:

Я получаю результаты здесь и сейчас две вещи, которые я узнал.

  1. Мне нужно зарегистрировать приложение, модель которого используется для индексирования.
  2. Если класс модели, является орфографической ошибкой в ​​search_indexes.py, запустив питона manage.py rebuild_index не бросает какую-то ошибку, и вы получите ноль индексированных объектов

ответ

1

ли вы запустить команду?

./manage.py rebuild_index 

У вас есть записи Projdb?

Вы это в коде:

text = indexes.CharField(document=True, use_template=True) 

Вы настройка соответствующего шаблона (projdb_text.txt)?

+0

Я думал, что мне не нужно регистрировать приложение, модель которого я использовал. Это была ошибка, которую я совершил. – Ent

Смежные вопросы