有没有人有将Haystack / Solr与Django集成的例子?

时间:2009-11-10 15:43:48

标签: python django solr django-haystack

注意:此问题最初适用于 Xapian ,但由于跨平台问题和对Xapian I(我们团队)的理解不足,选择 Solr 相反。

我正在寻找片段,技巧,提示,链接以及需要注意的任何内容(陷阱)。我的技术堆栈包括:

  • MySQL 5.1 (不太相关)
  • 最终部署到Linux的Red Hat和Windows配置
  • 主要在我的团队的Windows机器上完成开发
  • 我们的配置中没有PHP或Java支持,ergo no Solr或Django-Sphinx 毕竟使用Java了!

谢谢大家的帮助和见解!

1 个答案:

答案 0 :(得分:4)

一些笔记和资源。我的建议主要与Haystack有关,因为我没有Xapian作为后端的经验。

  1. 安装Xapian(来自Haystack docs) - 注意Haystack没有 自己支持Xapian: http://haystacksearch.org/docs/installing_search_engines.html#xapian
  2. 使用Whoosh可能会有所帮助 在开发或测试期间 某些事情,但请记住 它不支持所有的 Xapian的功能。干草堆 好好地失败了(a 如果您尝试,请在控制台中发出警告 使用Whoosh功能吧 不支持,所以在之间切换 他们是无痛的: http://haystacksearch.org/docs/installing_search_engines.html#whoosh
  3. 我自己的代码片段 在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')
    
  4. 据我所知,你的选择 数据库没有什么区别 只要Django支持它,因为Haystack使用ORM。
  5. 如果遇到任何麻烦, Haystack的开发人员(丹尼尔 Lindsley)非常有帮助 快速回应。你可以得到帮助 来自他和其他人 django-haystack Google group或 #haystack IRC频道(即, 如果你没找到答案 official docs)。