2011-05-20 46 views
3

对于我实施Haystack的项目,但现在我想知道使用Haystack在ORM上的优缺点。对于我的项目,我需要通过他们的头衔和名字找到书籍。我猜Haystack更有用,如果你必须做全文搜索或者我错过了什么?Django:Haystack or OR

回答

6

Haystack对于全文搜索来说当然更好,并且还提供了一些其他的好处,你不会使用ORM。下面是一些从草堆网站:

  1. 拼写建议
  2. 车花
  3. 更多类似这样的
  4. 突出
  5. 搜索条件提高

除此之外,你应该用干草堆上ORM,如果你期望大量的搜索,因为你会从DB中卸载所有的工作(这应该专注于编写和检索你的数据)。

http://haystacksearch.org/

0

草堆是一个模块,可以更容易搜索集成为您的Django应用

您可以创建类似的东西到的ModelForm,叫ModelIndex,在这个新的类,你就可以宣布你的模型的搜索领域,其他设置

它几乎没有做Django的ORM(ORM的使用与您的数据库comunicate)

当然

你可以用搜索模式,你的数据库模型中指定的ORM查询,但草堆是一个在您的w上轻松设置搜索引擎的更好选择ebsite,所以...如果你必须在你的网站上启用复杂的搜索,只需要与Haystack一起去

3

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

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

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

  • 如果您的网站将是永远的小,像小公司的内部网,也懒得和用户ORM 。
  • 如果你计划大的坏网,去干草堆。
+0

它在PostGreSQL(9.x)的后续版本中如何与全文搜索进行比较(性能明智)? – mtnpaul 2012-02-24 19:40:05

+0

我不使用PostGres,所以我不能告诉。 – 2012-02-25 09:55:41

1

不要忘记提及做一个基本的干草堆设置并不比使用Django的ORM做一个搜索视图更多的工作。