最好的Django搜索应用是什么?[关闭]


110

我正在建立一个需要搜索功能的Django项目,直到有一个 django.contrib.search,我必须选择一个搜索应用程序。那么,哪个最好?“最好”是指...

  • 易于安装/设置
  • 具有Django或至少Python友好的API
  • 可以执行相当复杂的搜索

这是我听说过的一些应用程序,如果您知道其中任何一个,请建议其他应用程序:

我还想避免使用第三方搜索引擎(例如Google SiteSearch),因为我想索引的某些数据仅适用于网站成员,不应公开。



通常,“ best”之类的东西都是很主观的,但是django确实有一个“ best”搜索应用程序,如被接受的答案所示。

除非我完全误解了django,否则这仍然是一个库请求,因此是题外话。
Jeffrey Bosboom,2015年

Answers:


104

查阅Haystack Search-一个基于模型的新模型,该抽象层目前支持XapianSolrWhoosh。看起来它得到了很好的支持和记录。


3
Haystack正在积极开发中,作者始终可以通过电子邮件列表获得。
汤姆(

2
在djangosearch项目中:“该项目不再处于积极开发中。如果您正在寻找可与多个搜索引擎一起使用的django全文搜索应用程序,请查看干草堆。如果您正在寻找Solr特有的内容,则可能要尝试solango。”
Esteban Feldman 2010年

Haystack在很长一段时间内都受到严重支持(如果有的话)。我建议您此时避免使用它。也许他们会在将来修复它,但是现在它在一个糟糕的地方。
亚伦·希夫

我同意,最新版本的haystack(2.1)无法与Django 1.4的python 2.7版本一起使用。
克里斯·霍克斯

19

贾斯汀,我先尝试djangosearch:Jacob Kaplan-Moss(Django的首席开发人员)正在研究它。

潜在危险:

  • 主页警告该API可能并不完全稳定

潜在的好处:

  • “长远的目标是要实现这一目标django.contrib.search。”

45
现在页面上显示“该项目不再处于积极开发中。如果您正在寻找可与多个搜索引擎一起使用的django全文搜索应用程序,请查看Haystack。”
Tomas Andrle,2009年

18

我正在寻找同一件事,就像其他许多人一样。希望很快会添加django.contrib.search

同时,这是我发现的内容:

对我来说,大多数看起来很复杂,坦率地说,实施起来有些艰巨。我很想了解您对这些的看法。



8

我建议使用Sphinx进行全文搜索和聚合,而django-sphinx足以用于生产环境。我们发现Sphinx是索引和搜索文档的资源最少,最快的方式,而django-sphinx是sphinx客户端之上的一个很好的包装器。

如果您想显示有多少个带有特定标签或由某个作者(或两者兼有)匹配的文档,则按聚合分组特别好。在内存中,属性更新也很方便,特别是对于立即删除已删除的文章。


6

谢谢加思。我曾经见过djangosearch想成为正式的Django搜索,但是由于无法找到任何文档,我还是犹豫使用它!幸运的是,在Subversion中有一个自述文件,我以前从未见过,它使API看起来很酷:

# set up the model
class Event(models.Model):
    title = models.CharField(max_length=255)
    date = models.DateField()
    is_outdoors = models.BooleanField()

    index = djangosearch.ModelIndex(text=['title'], 
                                    additional=['date', 'is_outdoors'])

# run a search
results = Event.index.search("django conference")

6

我只需要一个非常快速的解决方案,对于内部应用程序来说就算是小菜一碟。

我很快找到了文章“ 将搜索添加到Django”,这对我来说非常出色!

显然,它缺乏像Haystack这样的真实项目的速度,可伸缩性和功能,但是此项目更易于设置,除关键字AND-search外,我真的不需要其他任何东西。



2

好像这里的每个人都错过了django-xappy

在对Django的所有现有搜索插件进行了快速评估之后,我发现这是最灵活,最易于使用的插件。在几个地方的边缘都很粗糙,但这仍然是在Django项目中使用Xapian搜索引擎功能的最佳方法。



1

如果您要对大量数据建立索引或期望获得高流量,建议您使用一些外部搜索引擎,例如Solr。这样,您将保持无共享方式,并能够独立扩展站点组件。


1

我想我将不得不向贾比安大喊大叫。

坚如磐石...只需拉下源代码分布并查看内部即可。一流的代码,评论不多。

它仍然是一个年轻的软件项目,但是我认为django社区应该将它的精力放在这个项目上。


0

谢谢乔,

我们决定使用Tsearch2和自定义的postgres适配器。Tsearch2不需要额外的进程来运行,这很方便,因为我们是在内存有限的WebFaction主机上进行的……它尚未完全完成,但似乎是一个很好的解决方案……


0

我发现Djoosh依靠纯Python外部搜索引擎Whoosh与我的“ Python”大脑很好地配合。


0

如果您愿意使用第三方搜索引擎,我可以推荐Yahoo BOSSdjango-bosssearch

Yahoo BOSS是一项付费服务​​,但是它可以节省您在服务器上设置和维护其他搜索软件的费用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.