我一直在研究Haystack 2.0.0beta的文档,并使用solr3.6.0作为我的后端。我已经了解了入门示例。现在使用facet示例。
search_indexes.py
import datetime
from haystack import indexes
from bsmain.models import Note
class NoteIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
author = indexes.CharField(model_attr='user', faceted=True)
pub_date = indexes.DateTimeField(model_attr='pub_date')
def get_model(self):
return Note
def index_queryset(self):
"""Used when the entire index for model is updated."""
return self.get_model().objects.filter(pub_date__lte=datetime.datetime.now())
urls.py
from django.conf.urls.defaults import *
from django.conf import settings
from django.conf.urls.defaults import *
from haystack.forms import FacetedSearchForm
from haystack.query import SearchQuerySet
from haystack.views import FacetedSearchView
sqs = SearchQuerySet().facet('author')
urlpatterns = patterns('haystack.views',
url(r'^$', FacetedSearchView(form_class=FacetedSearchForm,searchqueryset=sqs),
name='haystack_search'),
)
我已经在python shell中进行了测试并获得了facet和count,但是当我触发/ search url(使用示例中为facet提供的html)时,我得到了表单但没有facets或count。 任何人都可以在上面的代码中看到任何错误,或者我还缺少其他东西吗?
感谢。
答案 0 :(得分:0)
您是否重建了索引(./manage.py rebuild_index
)?
完成后,再创建schema.xml(./manage.py build_solr_scema > schema.xml
)
然后将shcema.xml复制到solr conf目录并重新启动solr。
这应该可以解决你的问题。