有没有将Haystack/Solr与Django集成的示例?
注意:这个问题最开始是关于Xapian的,但因为跨平台的问题和对Xapian理解不够,我们团队最终选择了Solr。
我在寻找一些代码片段、技巧、建议、链接,以及需要注意的事项(小陷阱)。我的技术栈包括:
MySQL 5.1(其实不太相关)- 在Red Hat和Windows上配置,最后部署到Linux
- 我们团队主要在Windows机器上进行开发
我们的配置中没有PHP或Java支持,所以没有Solr或Django-Sphinx最后还是选择了Java!
谢谢大家的帮助和建议!
1 个回答
4
这里有一些注意事项和资源。我给的建议主要是关于Haystack的,因为我对Xapian作为后端的使用经验不多。
- 安装Xapian(可以参考Haystack的文档)- 需要注意的是,Haystack本身不支持Xapian: http://haystacksearch.org/docs/installing_search_engines.html#xapian
- 在开发或测试某些功能时,使用Whoosh可能会很有帮助,但要记住,它不支持Xapian的所有功能。如果你尝试用Whoosh去做它不支持的事情,Haystack会在控制台给你一个警告,处理得很优雅,所以在它们之间切换是很简单的: http://haystacksearch.org/docs/installing_search_engines.html#whoosh
这是我自己代码中的一个片段,展示了如何轻松切换Whoosh和Solr:
# Haystack search settings HAYSTACK_SITECONF = 'project.search_sites' HAYSTACK_INCLUDE_SPELLING = True # Haystack backend settings HAYSTACK_SEARCH_ENGINE = 'solr' # Switch this to 'whoosh' to use that backend instead if DEBUG: HAYSTACK_SOLR_URL = 'solr.development.url' else: HAYSTACK_SOLR_URL = 'solr.production.url' HAYSTACK_WHOOSH_PATH = os.path.join(PROJECT_ROOT, 'search_index', 'whoosh')
- 据我所知,只要Django支持你选择的数据库,数据库的选择对你来说没有太大影响,因为Haystack使用的是ORM。
- 如果你遇到任何问题,Haystack的开发者(Daniel Lindsley)非常乐于助人,回复也很快。你可以在django-haystack Google小组或者#haystack IRC频道寻求帮助(当然,如果你在官方文档中找不到答案的话)。