1

我一直在研究 Haystack 2.0.0beta 的文档,并使用 solr3.6.0 作为我的后端。我已经完成了入门示例。现在使用构面示例。

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())

网址.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 中进行了测试并获得了构面和计数,但是当我触发 /search url(使用示例中为构面提供的 html)时,我得到了表单,但没有构面或计数。任何人都可以在上面的代码中看到任何错误,或者我还缺少其他东西吗?

谢谢。

4

1 回答 1

0

您是否重建了索引 ( ./manage.py rebuild_index)?

完成后,创建 schema.xml ( ./manage.py build_solr_scema > schema.xml)

然后将 shcema.xml 复制到您的 solr conf 目录并重新启动 solr。

那应该可以解决您的问题。

于 2012-07-16T15:02:16.933 回答