【发布时间】:2011-05-20 13:15:49
【问题描述】:
对于一个项目,我实现了 Haystack,但现在我想知道使用 Haystack 而不是 ORM 的优缺点是什么。对于我的项目,我需要按书名和 isbn 查找书籍。如果您必须进行全文搜索或者我遗漏了什么,我猜 Haystack 会更有用?
【问题讨论】:
对于一个项目,我实现了 Haystack,但现在我想知道使用 Haystack 而不是 ORM 的优缺点是什么。对于我的项目,我需要按书名和 isbn 查找书籍。如果您必须进行全文搜索或者我遗漏了什么,我猜 Haystack 会更有用?
【问题讨论】:
Haystack 无疑更适合全文搜索,并且还提供了许多使用 ORM 无法获得的其他好处。以下是 Haystack 网站上的一些内容:
除此之外,如果您希望进行大量搜索,则应该使用 Haystack 而不是 ORM,因为您将从数据库中卸载所有工作(应该专注于写入和检索数据)。
【讨论】:
使用 haystack 优于 ORM 的主要优势是性能。 如果您有 100 个并发用户搜索,LIKE 请求只会杀死您的数据库。如果你有 MYSQL 当然你仍然可以使用它的全文功能,但它仍然会比 Xapian 或 Solr 慢。
此外,您还将拥有其他功能,例如用户非常喜欢的模糊搜索。
它确实带有设置和维护它的额外工作,所以:
【讨论】:
别忘了提一下,做一个基本的 haystack 设置并不比使用 Django 的 ORM 做一个搜索视图更多。
【讨论】:
Haystack 是一个模块,可以让您的 django 应用程序更轻松地进行搜索集成
您可以创建类似于 ModelForm 的东西,称为 ModelIndex,在这个新类中,您将能够声明模型的可搜索字段和其他设置
它与 Django ORM 关系不大(orm 用于与您的数据库通信)
当然,您可以让 orm 使用指定的搜索模式查询您的数据库模型,但是 Haystack 是在您的网站上轻松设置搜索引擎的更好选择,所以...如果您必须在您的网站,请使用 Haystack
【讨论】: