我按照Haystack教程设置了Whoosh
>>> 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_indexes.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())
我以前能够获得弹性搜索的结果但是当我转移到Whoosh时我没有得到任何结果。
感谢您的时间。如果您需要更多信息,请告诉我。
修改
我现在正在取得成果,这是我学到的两件事。
答案 0 :(得分:1)
你运行了命令吗?
./manage.py rebuild_index
您有任何Projdb记录吗?
你的代码中有这个:
text = indexes.CharField(document=True, use_template=True)
您是否设置了相应的模板(projdb_text.txt)?