114

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

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

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

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

4

15 回答 15

105

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

于 2009-05-08T16:10:42.847 回答
19

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

潜在危险:

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

潜在好处:

  • “长期目标是实现这一目标django.contrib.search。”</li>
于 2008-09-11T07:03:56.893 回答
18

我正在寻找同样的东西,就像很多其他人一样。让我们希望django.contrib.search很快就会被添加。

与此同时,这是我发现的:

对我来说,大多数看起来很复杂,坦率地说,实施起来有点令人生畏。我很想知道你对这些的看法。

于 2008-10-16T20:43:50.233 回答
9

djangosearch的谷歌代码页表明它不再处于积极开发中,并建议使用haystacksolango

于 2009-05-09T21:38:37.243 回答
8

我推荐 Sphinx 用于全文搜索和聚合,django-sphinx 足以用于生产。我们发现 Sphinx 是索引和搜索文档的资源最少且最快的方法,并且 django-sphinx 是 sphinx 客户端之上的一个很好的包装器。

聚合分组特别好,例如,如果您想显示有多少具有特定标签或特定作者(或两者)的文档与搜索匹配。内存属性更新也很方便,尤其是对于立即删除已删除的文章。

于 2008-10-23T20:07:28.897 回答
6

谢谢加思。之前看到 djangosearch 想成为官方的 Django 搜索,但是因为找不到任何文档而犹豫要不要使用它!幸运的是,subversion中有一个我以前没见过的 README,它让 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")
于 2008-09-11T15:28:50.347 回答
6

我只需要一个非常快速的解决方案,对于内部应用程序来说不会大惊小怪。

我很快就找到了将搜索添加到 Django的文章,这对我来说非常有用!

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

于 2011-04-22T23:33:01.527 回答
3

您可能需要考虑让 Yahoo 使用他们的 Build your own Search Service (BOSS) 来完成所有艰苦的工作。这是一篇很棒的博客文章,可以引导您完成整个过程: http ://www.peterkrantz.com/2008/yahoo-search-in-django/

于 2009-04-26T05:38:19.513 回答
2

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

在对所有现有的 Django 搜索插件进行快速评估后,我发现这是最灵活且最易于使用的插件。它在一些地方很粗糙,但它仍然是在 Django 项目中使用Xapian搜索引擎功能的最佳方式。

于 2009-01-27T16:31:04.970 回答
2

您可能想查看Django Solr 搜索(又名“Solango”),它附带了一些很好的文档来帮助您入门……

于 2009-04-15T05:40:40.457 回答
1

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

于 2008-09-17T19:48:21.247 回答
1

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

它坚如磐石......只需拉下一个源分布并窥视内部。一流的代码,没有太多的评论。

它仍然是一个年轻的软件项目,但我认为 django 社区应该支持这个项目。

于 2009-05-31T22:59:10.570 回答
0

谢谢乔,

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

于 2008-10-24T07:24:20.310 回答
0

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

于 2009-04-14T15:56:45.290 回答
0

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

Yahoo BOSS is a paid service, but it saves you setting up and maintaining other search software on your server.

于 2012-05-13T15:22:19.900 回答