我正在构建一个需要搜索功能的 Django 项目,在没有 之前django.contrib.search
,我必须选择一个搜索应用程序。那么,哪个是最好的?“最好”是指...
- 易于安装/设置
- 有一个 Django 或至少 Python 友好的 API
- 可以执行相当复杂的搜索
以下是我听说过的一些应用程序,如果您知道,请推荐其他应用程序:
我还想避免使用第三方搜索引擎(如 Google SiteSearch),因为我想索引的一些数据仅供网站成员使用,不应公开。
我正在构建一个需要搜索功能的 Django 项目,在没有 之前django.contrib.search
,我必须选择一个搜索应用程序。那么,哪个是最好的?“最好”是指...
以下是我听说过的一些应用程序,如果您知道,请推荐其他应用程序:
我还想避免使用第三方搜索引擎(如 Google SiteSearch),因为我想索引的一些数据仅供网站成员使用,不应公开。
查看Haystack Search——一个基于新模型的搜索抽象层,目前支持Xapian、Solr和Whoosh。看起来它得到了很好的支持和记录。
Justin,我会先尝试djangosearch:Jacob Kaplan-Moss(Django 的首席开发人员)正在研究它。
潜在危险:
潜在好处:
django.contrib.search
。”</li>
我正在寻找同样的东西,就像很多其他人一样。让我们希望django.contrib.search很快就会被添加。
与此同时,这是我发现的:
对我来说,大多数看起来很复杂,坦率地说,实施起来有点令人生畏。我很想知道你对这些的看法。
djangosearch的谷歌代码页表明它不再处于积极开发中,并建议使用haystack或solango。
我推荐 Sphinx 用于全文搜索和聚合,django-sphinx 足以用于生产。我们发现 Sphinx 是索引和搜索文档的资源最少且最快的方法,并且 django-sphinx 是 sphinx 客户端之上的一个很好的包装器。
聚合分组特别好,例如,如果您想显示有多少具有特定标签或特定作者(或两者)的文档与搜索匹配。内存属性更新也很方便,尤其是对于立即删除已删除的文章。
谢谢加思。之前看到 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")
我只需要一个非常快速的解决方案,对于内部应用程序来说不会大惊小怪。
我很快就找到了将搜索添加到 Django的文章,这对我来说非常有用!
显然它缺乏像 Haystack 这样的真实项目的速度、可扩展性和特性,但是这个更容易设置,而且我真的不需要任何东西,只需要关键字 AND 搜索。
您可能需要考虑让 Yahoo 使用他们的 Build your own Search Service (BOSS) 来完成所有艰苦的工作。这是一篇很棒的博客文章,可以引导您完成整个过程: http ://www.peterkrantz.com/2008/yahoo-search-in-django/
看起来这里的每个人都错过了django-xappy
在对所有现有的 Django 搜索插件进行快速评估后,我发现这是最灵活且最易于使用的插件。它在一些地方很粗糙,但它仍然是在 Django 项目中使用Xapian搜索引擎功能的最佳方式。
您可能想查看Django Solr 搜索(又名“Solango”),它附带了一些很好的文档来帮助您入门……
如果您有大量数据要编入索引或者您期望高流量,我建议您使用一些外部搜索引擎,例如Solr。这样,您将保持无共享方法并能够独立扩展您的站点组件。
我想我将不得不向 Djapian 大喊一声。
它坚如磐石......只需拉下一个源分布并窥视内部。一流的代码,没有太多的评论。
它仍然是一个年轻的软件项目,但我认为 django 社区应该支持这个项目。
谢谢乔,
我们决定使用 Tsearch2 和自定义 postgres 适配器。Tsearch2 不需要额外的进程来运行,这很方便,因为我们在一个内存有限的 WebFaction 主机上......它还没有完全完成,但似乎是一个很好的解决方案......
如果你愿意使用第三方搜索引擎,我可以推荐Yahoo BOSS和django-bosssearch。
Yahoo BOSS is a paid service, but it saves you setting up and maintaining other search software on your server.