【问题标题】:Django: Haystack or ORMDjango:干草堆或 ORM
【发布时间】:2011-05-20 13:15:49
【问题描述】:

对于一个项目,我实现了 Haystack,但现在我想知道使用 Haystack 而不是 ORM 的优缺点是什么。对于我的项目,我需要按书名和 isbn 查找书籍。如果您必须进行全文搜索或者我遗漏了什么,我猜 Haystack 会更有用?

【问题讨论】:

    标签: django search


    【解决方案1】:

    Haystack 无疑更适合全文搜索,并且还提供了许多使用 ORM 无法获得的其他好处。以下是 Haystack 网站上的一些内容:

    1. 拼写建议
    2. 刻面
    3. 更多这样的
    4. 突出显示
    5. 搜索词提升

    除此之外,如果您希望进行大量搜索,则应该使用 Haystack 而不是 ORM,因为您将从数据库中卸载所有工作(应该专注于写入和检索数据)。

    http://haystacksearch.org/

    【讨论】:

      【解决方案2】:

      使用 haystack 优于 ORM 的主要优势是性能。 如果您有 100 个并发用户搜索,LIKE 请求只会杀死您的数据库。如果你有 MYSQL 当然你仍然可以使用它的全文功能,但它仍然会比 Xapian 或 Solr 慢。

      此外,您还将拥有其他功能,例如用户非常喜欢的模糊搜索。

      它确实带有设置和维护它的额外工作,所以:

      • 如果您的网站将永远变小,例如小型公司 Intranet,请不要打扰并使用 ORM。
      • 如果您计划构建大型糟糕的 Web,请使用 Haystack。

      【讨论】:

      • 它与 PostGreSQL (9.x) 更高版本中的全文搜索相比(性能方面)如何?
      • 我不使用 PostGres,所以我不知道。
      【解决方案3】:

      别忘了提一下,做一个基本的 haystack 设置并不比使用 Django 的 ORM 做一个搜索视图更多。

      【讨论】:

        【解决方案4】:

        Haystack 是一个模块,可以让您的 django 应用程序更轻松地进行搜索集成

        您可以创建类似于 ModelForm 的东西,称为 ModelIndex,在这个新类中,您将能够声明模型的可搜索字段和其他设置

        它与 Django ORM 关系不大(orm 用于与您的数据库通信)

        当然,您可以让 orm 使用指定的搜索模式查询您的数据库模型,但是 Haystack 是在您的网站上轻松设置搜索引擎的更好选择,所以...如果您必须在您的网站,请使用 Haystack

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-01-09
          • 2011-05-03
          相关资源
          最近更新 更多