有一个Django——或者至少是对python友好"/>

关于python:什么是最好的Django搜索应用程序?

关于python:什么是最好的Django搜索应用程序?

What's the best Django search app?

我正在构建一个需要搜索功能的Django项目,在出现django.contrib.search之前,我必须选择一个搜索应用程序。那么,哪一个最好呢?"最好"是指…

  • 易于安装/设置
  • 有一个Django——或者至少是对python友好的API
  • 可以执行相当复杂的搜索

以下是我听说过的一些应用程序,如果您知道,请推荐其他应用程序:

  • DjangSoSoCH
  • 丹焦狮身人面像

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


查看haystack搜索——一个新的基于模型的搜索抽象层,目前支持xapian、solr和whoosh。看起来它得到了很好的支持和记录。


Justin,我先试试Djangosearch:JacobKaplanMoss(Django的主要开发人员)正在开发它。

潜在危险:

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

潜在利益:

  • "长期目标是使其成为django.contrib.search"。


我和其他很多人一样,也在寻找同样的东西。希望很快能添加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/

对我来说,大多数看起来相当复杂,坦率地说,执行起来有点令人望而生畏。我有兴趣了解你对这些的看法。


Djangosearch的Google代码页表明它已不再处于活动开发阶段,并建议使用Haystack或Solango。


我建议使用斯芬克斯进行全文搜索和聚合,而Django Sphinx足以满足生产使用。我们发现Sphinx是索引和搜索文档的最不占用资源和最快的方式,Django Sphinx是Sphinx客户机上一个很好的包装器。

如果您希望显示具有特定标记或由特定作者(或两者)匹配搜索的文档数,那么按聚合分组就特别好。内存中的属性更新也很方便,特别是对于立即删除的文章。


谢谢Garth。我看到了django search想要成为正式的django搜索,但我犹豫着使用它,因为我找不到任何文档!幸运的是,在Subversion中有一个我以前没有见过的自述文件,它使API看起来非常酷:

1
2
3
4
5
6
7
8
9
10
11
# 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")


我只是需要一个非常快速的解决方案,而不是为一个内部应用程序大惊小怪。

我发现这篇文章很快就把搜索添加到了django中,这对我来说非常有用!

显然,它缺乏像Haystack这样的实际项目的速度、可扩展性和特性,但是这个项目更容易设置,而且我不需要任何其他东西,除了关键字和搜索。


你可能想考虑让雅虎用他们自己的搜索服务(boss)来做所有的努力。以下是一篇很好的博客文章,引导您完成整个过程:http://www.peterkrantz.com/2008/yahoo-search-in-django/


你可能想看看django-solr搜索(又名"solango"),它附带了一些不错的文档来帮助你开始……


看起来这里的每个人都错过了德扬戈·沙皮

在对Django现有的所有搜索加载项进行快速评估之后,我发现这个加载项是最灵活和最容易使用的。这在一些地方是粗糙的边缘,但它仍然是在Django项目中使用Xapian搜索引擎的最佳方式。


我想我得向贾皮安大喊一声。

它是岩石固体……只需下拉一个震源分布并窥视内部即可。一流的代码,不是很多评论。

这仍然是一个年轻的软件项目,但我认为django社区应该把它的重量抛在这个项目后面。


如果你有大量的数据需要索引,或者你期望高流量,我建议使用一些外部搜索引擎,比如solr。这样,您就可以保持不共享的方法,并且能够独立地扩展站点组件。


如果你愿意使用第三方搜索引擎,我可以推荐雅虎老板和Django Bosssearch。

雅虎老板是一个付费服务,但它可以节省你在服务器上设置和维护其他搜索软件的费用。


我发现djoosh依赖于纯Python外部搜索引擎的呼啸声来很好地处理我的"python"大脑。


谢谢乔,

我们决定使用tsearch2和定制的Postgres适配器。tsearch2不需要额外的进程来运行,这很方便,因为我们在一个内存有限的网络派系主机上…这还没有完全完成,但似乎是一个很好的解决方案…


推荐阅读

    linux安装强制命令行?

    linux安装强制命令行?,机器人,软件,工作,工业,系统,地址,电脑,生产,设计,状

    linux命令行安装应用?

    linux命令行安装应用?,软件,系统,名称,官网,在线,管理,工作,信息,命令,目录,l

    linux安装浏览器命令?

    linux安装浏览器命令?,官网,系统,平台,网站,管理,设备,咨询,工具,官方网站,

    linux安装sz命令?

    linux安装sz命令?,系统,软件,标准,服务,工作,工具,命令,位置,平台,百度,如何

    linux安装纯命令行?

    linux安装纯命令行?,软件,系统,发行,环境,基础,工作,工具,公司,终端,命令,如

    linux安装npm命令?

    linux安装npm命令?,证书,最新,档案,代理,信息,位置,系统,工程,命令,版本,ngin

    linux什么命令安装c?

    linux什么命令安装c?,系统,管理,工作,软件,在线,名字,传播,代码,工具,信息,li

    linux安装更新命令?

    linux安装更新命令?,软件,系统,项目,名称,管理,数据,网站,工作,官方网站,命

    linux安装dep命令?

    linux安装dep命令?,系统,软件,策略,管理,对比,时间,工具,名字,平台,代码,如何

    linux中本地安装命令?

    linux中本地安装命令?,软件,系统,官网,在线,百度,中心,官方网站,工具,信息,

    linux本地安装命令?

    linux本地安装命令?,软件,系统,工具,在线,数据,官网,环境,名称,命令,文件,lin

    linux下安装微信命令?

    linux下安装微信命令?,软件,系统,工具,官网,平台,近日,服务,认证,体系,官方

    linux命令创建项目组?

    linux命令创建项目组?,管理,密码,项目,命令,系统,位置,文件,用户组,用户,文

    linux下载安装包命令?

    linux下载安装包命令?,软件,系统,名称,位置,数据,名字,通讯,灵活,最新,管理,

    linux安装操作命令?

    linux安装操作命令?,系统,工作,地址,工具,服务,情况,信息,命令,最新,管理,lin

    linux安装源码命令?

    linux安装源码命令?,软件,管理,最新,灵活,官网,工具,系统,源码,命令,文件,如

    linux安装管理命令?

    linux安装管理命令?,软件,系统,工作,在线,基础,管理,命令,官网,工具,名称,lin

    linux命令安装新系统?

    linux命令安装新系统?,系统,软件,工作,管理,在线,电脑,信息,基础,发行,数据,L

    linux命令搜索大全?

    linux命令搜索大全?,地址,工作,系统,命令,管理,目录,标准,基础,工具,网络,lin

    linux安装arp命令?

    linux安装arp命令?,地址,系统,时间,网络,信息,合法,有限,金山,数字,设备,Linu