什么是最好的Djangosearch应用程序?

我正在构build一个需要searchfunction的Django项目,直到有一个django.contrib.search ,我必须select一个search应用程序。 那么,哪个最好? 我的意思是说“最好”

  • 易于安装/设置
  • 有一个Django或至lessPython友好的API
  • 可以执行相当复杂的search

以下是我听说过的一些应用程序,如果您知道任何其他应用程序,请告诉其他人:

  • djangosearch
  • Django的狮身人面像

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

查看Haystack Search – 一个新的基于模型的search抽象层,目前支持Xapian , Solr和Whoosh 。 看起来很好的支持和logging。

Justin,我会先试试djangosearch :Django的首席开发人员Jacob Kaplan-Moss正在开发它。

潜在危险:

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

潜在的好处:

  • “长远目标是为了成为django.contrib.search

我正在寻找同样的东西,就像很多其他人一样。 让我们希望django.contrib.search即将join。

同时,这是我发现的:

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

我build议使用Sphinx进行全文search和聚合,而django-sphinx足够用于生产。 我们发现狮身人面像是索引和search我们文档的资源最密集和最快速的方式,而且django-sphinx是狮身人面像客户端上的一个很好的包装。

例如,如果要显示具有某个标签或某个作者(或两者)匹配search的文档数量,则通过聚合的组是非常好的。 在内存属性更新也很方便,特别是立即删除删除的文章。

djangosearch的google代码页表明它已经不再处于积极的发展状态,并build议大草堆或solango 。

谢谢加思。 我看到djangosearch想成为官方的Djangosearch,但我犹豫不决,因为我找不到任何文档! 幸运的是, 在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") 

我只需要一个非常快速的解决scheme,对于一个内部应用程序来说是没有问题的。

我发现文章添加search到Django ,这对我来说非常出色!

显然,它缺乏像Haystack这样的真实项目的速度,可扩展性和特性,但是这个更容易设置,而且除了关键字AND-search外,其他什么都不需要。

你可能要考虑让雅虎用自己的search服务(BOSS)来做所有的努力。 这里有一篇很棒的博客文章,可以引导你完成这个过程: http : //www.peterkrantz.com/2008/yahoo-search-in-django/

看起来这里的每个人都错过了django-xappy

在对Django的所有现有search插件进行快速评估之后,我发现这个插件是最灵活和最容易使用的。 它在很less的地方很糟糕 ,但是它仍然是在Django项目中使用Xapiansearch引擎的最佳方式。

你可能想看看Django Solrsearch (又名“Solango”),它带有一些很好的文档,让你开始…

如果你有大量的数据被索引,或者你期望高stream量,我build议使用一些外部search引擎,如Solr 。 这样,您将保持无共享的方法,并能够独立扩展您的网站组件。

我想我将不得不向Djapian大喊一声。

它是坚如磐石的…只需拉下一个源代码分布并在里面偷看。 顶尖的代码,不是很多评论tho ..

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

感谢乔,

我们决定去Tsearch2和一个自定义的postgres适配器。 Tsearch2不需要额外的过程来运行,这很方便,因为我们在一个有限的内存WebFaction托pipe…这还没有完成,但似乎是一个很好的解决scheme…

我发现Djoosh依靠纯python外部search引擎Whoosh与我的“Python”大脑很好地工作。

如果您愿意使用第三方search引擎,我可以推荐雅虎BOSS和django-bosssearch 。

雅虎BOSS是一项付费服务​​,但它可以帮助您在服务器上设置和维护其他search软件。