什么是最好的 Django 搜索应用程序? [关闭]
Posted
技术标签:
【中文标题】什么是最好的 Django 搜索应用程序? [关闭]【英文标题】:What's the best Django search app? [closed] 【发布时间】:2010-09-08 11:26:33 【问题描述】:我正在构建一个需要搜索功能的 Django 项目,在出现 django.contrib.search
之前,我必须选择一个搜索应用程序。那么,哪个是最好的?我所说的“最好”是指...
以下是我听说过的一些应用,如果您知道,请推荐其他应用:
djangosearch django-sphinx我还想避免使用第三方搜索引擎(如 Google SiteSearch),因为我想索引的一些数据仅供网站成员使用,不应公开。
【问题讨论】:
djangopackages.com/grids/g/search 通常情况下,“最佳”之类的内容非常主观,但正如公认的答案所示,django 确实有一个“最佳”搜索应用程序。 除非我完全误解了 django,否则这仍然是一个库请求,因此离题了。 【参考方案1】:查看Haystack Search - 一个基于新模型的搜索抽象层,目前支持Xapian、Solr 和Whoosh。看起来它得到了很好的支持和记录。
【讨论】:
Haystack 正在积极开发中,作者随时可以通过电子邮件列表联系到。 来自 djangosearch 项目:“该项目不再处于积极开发中。如果您正在寻找一个可与多个搜索引擎一起使用的 django 全文搜索应用程序,请查看 haystack。如果您正在寻找对于特定于 Solr 的东西,您可能想尝试 solango。" Haystack 在相当长的一段时间内一直受到严重支持(如果有的话)。我建议你在这一点上避免它。也许他们会在未来修复它,但它现在处于一个糟糕的地方。 我同意,最新版本的 haystack (2.1) 根本无法与我的 python 2.7 版本的 django 1.4 一起使用。【参考方案2】:贾斯汀,我先试试djangosearch:Jacob Kaplan-Moss(Django 的首席开发人员)正在研究它。
潜在危害:
主页警告 API 可能不完全稳定潜在好处:
“长期目标是让它成为django.contrib.search
。”
【讨论】:
该页面现在显示“该项目不再处于积极开发中。如果您正在寻找可与多个搜索引擎一起使用的 django 全文搜索应用程序,请查看 Haystack。”【参考方案3】:我和很多其他人一样在寻找同样的东西。让我们希望 django.contrib.search 将尽快添加。
与此同时,这是我发现的:
http://code.google.com/p/djangosearch/ http://code.google.com/p/django-sphinx/ http://code.google.com/p/djapian/ http://code.google.com/p/django-search-lucene/ http://www.sai.msu.su/~megera/postgres/gist/tsearch/V2/对我来说,大多数看起来都相当复杂,坦率地说,实施起来有点令人生畏。 我很想知道你对这些的看法。
【讨论】:
【参考方案4】:djangosearch 的谷歌代码页表明它不再处于积极开发中,并建议haystack 或solango。
【讨论】:
Solango 表示它不再处于开发阶段,并建议使用 Haystack。【参考方案5】:我推荐 Sphinx 用于全文搜索和聚合,django-sphinx 足以用于生产用途。我们发现 Sphinx 是索引和搜索文档的资源最少且最快的方法,并且 django-sphinx 是 sphinx 客户端之上的一个很好的包装器。
聚合分组特别好,例如,如果您想显示有多少具有特定标签或特定作者(或两者)的文档与搜索匹配。内存中的属性更新也很方便,尤其是对于立即删除已删除的文章。
【讨论】:
【参考方案6】:谢谢加思。之前看到 djangosearch 想成为 Django 的官方搜索,但是因为找不到任何文档,所以犹豫要不要使用它!幸运的是,有一个我以前没见过的README in 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")
【讨论】:
【参考方案7】:我只需要一个非常快速的解决方案,对于内部应用来说不会大惊小怪。
我找到了文章Adding search to Django in a snap,这对我来说非常棒!
显然它缺乏真正项目(如 Haystack)的速度、可扩展性和功能,但这个更容易设置,而且我真的不需要关键字 AND 搜索。
【讨论】:
【参考方案8】:您可能需要考虑让雅虎通过构建您自己的搜索服务 (BOSS) 来完成所有艰苦的工作。这是一篇很棒的博客文章,可引导您完成整个过程: http://www.peterkrantz.com/2008/yahoo-search-in-django/
【讨论】:
我有一个 Django 包,可以让它变得更简单:bitbucket.org/jaap3/django-bosssearch【参考方案9】:看来这里的每个人都错过了django-xappy
在对所有现有的 Django 搜索插件进行快速评估后,我发现这是最灵活且最易于使用的插件。它在一些地方有点粗糙,但它仍然是在 Django 项目中使用Xapian 搜索引擎的最佳方式。
【讨论】:
【参考方案10】:您可能想查看Django Solr search(又名“Solango”),它附带一些很好的文档来帮助您入门...
【讨论】:
【参考方案11】:如果您有大量数据要编入索引,或者您希望获得高流量,我建议您使用一些外部搜索引擎,例如 Solr。这样,您将保持无共享方法,并能够独立扩展您的网站组件。
【讨论】:
【参考方案12】:我想我得向 Djapian 大喊一声。
它坚如磐石......只需拉下一个源分布并查看内部。一流的代码,不是很多cmets tho..
它仍然是一个年轻的软件项目,但我认为 django 社区应该大力支持这个项目。
【讨论】:
【参考方案13】:谢谢乔,
我们决定使用 Tsearch2 和自定义 postgres 适配器。 Tsearch2 不需要额外的进程来运行,这很方便,因为我们在一个内存有限的 WebFaction 主机上......它还没有完全完成,但似乎是一个很好的解决方案......
【讨论】:
【参考方案14】:我发现 Djoosh 依赖于纯 Python 外部搜索引擎 Whoosh 与我的“Python”大脑一起工作。
【讨论】:
【参考方案15】:如果你愿意使用第三方搜索引擎,我可以推荐Yahoo BOSS 和django-bosssearch。
Yahoo BOSS 是一项付费服务,但它可以让您在服务器上设置和维护其他搜索软件。
【讨论】:
以上是关于什么是最好的 Django 搜索应用程序? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Django 和 Bootstrap:推荐啥应用程序? [关闭]
在没有数据持久性的情况下,如何最好地在 Django 中压缩表单:最 Djangonic 的方法是啥? [关闭]