django haystack出现错误,无法在search/xapian/xapian_索引处打开索引

django haystack出现错误,无法在search/xapian/xapian_索引处打开索引,django,django-haystack,xapian,Django,Django Haystack,Xapian,我正在尝试使用django haystack和xapian后端在django站点上设置搜索功能。我按照以下说明进行操作: 当我输入搜索时,它会抛出错误: 无法在搜索/xapian/xapian\u索引处打开索引 当我运行时,似乎没有创建搜索索引 ./manage.py重建索引 但是,当时没有报告任何错误 我正在尝试在myapp/models.py中为以下模型编制索引: class MyMsg (models.Model): msg = models.TextField(max_leng

我正在尝试使用django haystack和xapian后端在django站点上设置搜索功能。我按照以下说明进行操作:

当我输入搜索时,它会抛出错误: 无法在搜索/xapian/xapian\u索引处打开索引

当我运行时,似乎没有创建搜索索引 ./manage.py重建索引 但是,当时没有报告任何错误

我正在尝试在myapp/models.py中为以下模型编制索引:

class MyMsg (models.Model):
    msg = models.TextField(max_length=2000)
    pub_date = models.DateTimeField('date published')
    author = models.ForeignKey(User)
    def __unicode__(self):
        return self.msg
我在myapp/search_index.py中有以下搜索索引:

class MyMsgIndex(indexes.SearchIndex, indexes.Indexable):
    text = indexes.CharField(document=True, use_template=True)
    author = indexes.CharField(model_attr='author')
    pub_date = indexes.DateTimeField(model_attr='pub_date')

    def get_model(self):
        return MyMsg

    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())
我正在使用: 干草堆1.2.4 xapian 1.2.12 mac OS X 10.6.8


提前感谢您的帮助。

您说您正在使用Haystack 1.2.4,但您链接到了新的2.x测试版文档。在Haystack的早期版本中,您需要添加一个“自动发现”步骤

它涉及到在
settings.py
中创建一个名为
HAYSTACK\u SITECONF
的变量,该变量指向一个HAYSTACK配置模块。在该模块中,您至少需要有以下几行:

import haystack
haystack.autodiscover()
有关您的版本,请参见教程:


这可能是问题所在吗?

当您运行
rebuild\u index
时,您是否看到了它索引了多少个模型的统计信息?我注意到教程没有明确创建任何模型对象的步骤。python manage.py rebuild_index的输出是:警告:这将不可修复地删除连接“default”中搜索索引中的所有内容。在此之后,您可以选择从备份中恢复或通过
rebuild\u index
命令进行重建。您确定要继续吗?[y/N]y因为您这样说而从索引中删除所有文档。所有文件都被删除了,就这样?那么,您是否创建了任何
Note
对象(或您选择索引的任何模型)?我猜您的数据库中没有任何
Note
对象,因此
rebuild\u index
没有找到任何要做的工作,因此您的xapian索引没有生成。我没有看到任何对Note对象的引用。你能解释一下吗?谢谢你指出不一致的地方。我没有注意到。我尝试将HAYSTACK_SITECONF添加到我的settings.py和autodiscover中,但出现以下消息:
django.core.exceptions.impropertlyconfigured:HAYSTACK_SITECONF设置不再使用并且可以删除。
和xapian_索引仍未创建。您知道HAYSTACK的版本吗?下载的文件在name(不确定我在哪里看到了1.2.4),但是
haystack/\uuuuu init\uuuuuuuuuuuuy.py
有一行
\uuuuuuuu版本=(2,0,0,'beta')
,这解释了为什么
haystack\u SITECONF
标记了一个错误。2.0.0版可以使用吗?还是应该恢复到旧版本?我没有2.x版的经验,但应该可以使用。我使用1.2.x版本的Xapian,它对我来说运行非常好。我不认为我们可以在StackOverflow上找到这个问题的根源。我们可以在聊天室或IRC上尝试一些东西。Haystack作者在#Haystack频道的IRC(freenode)中提供了很大的支持