2012-03-02 91 views
1

我想在Django站点上使用Django Haystack和Xapian进行搜索功能。设置完所有必要的设置后。我继续输入:manage.py rebuild_index,输入'y'后我收到一个错误消息:Django Haystack和Xapian

没有名为xapian_backend的模块。

我可以在site-packages中看到xapian后端模块,但我不知道Django为什么没有看到它。我怎样才能使它工作?

下面是我的设置:

import os 
HAYSTACK_CONNECTIONS = { 
    'default': { 
     'ENGINE': 'haystack.backends.xapian_backend.XapianEngine', 
     'PATH': 'C:/Python27/Scripts/myweb/xapian_index', 
     'INCLUDE_SPELLING': True, 
     'BATCH_SIZE': 100, 
    }, 
} 
+0

的建议你加草垛到您的INSTALLED_APPS? – jdi 2012-03-02 06:35:53

+0

是的,我做到了。还是行不通! – picomon 2012-03-02 21:56:32

+0

除了[xapian_haystack](https://github.com/notanumber/xapian-haystack)后端,您是否安装了所有Xapian依赖项(Xapian库和Xapian python绑定)?如果你可以运行'python -c'import xapian'',那么这些要求就满足了。 – 2012-03-10 17:16:42

回答

2

引擎应该是:

'ENGINE': 'xapian_backend.XapianEngine', 

它不包含在草垛包,但是是分开的。它可能仍然无法工作。它似乎没有升级到干草堆2.x。

更新:它现在已经更新。

0

通过复制xapian_backend.py到草垛解决了这个问题/后端由readme