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

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

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

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

有帮助吗?

解决方案

查看 干草堆搜索 - 目前支持的基于新模型的搜索抽象层 夏皮安, 索尔嗖嗖. 。看起来它得到了很好的支持和记录。

其他提示

贾斯汀,我会尝试 Django 搜索 第一的:Jacob Kaplan-Moss(Django 的首席开发人员)正在研究它。

潜在危险:

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

潜在的好处:

  • “长期目标是让它成为 django.contrib.search.”

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

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

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

我建议使用 Sphinx 进行全文搜索和聚合,并且 django-sphinx 对于生产使用来说已经足够好了。我们发现 Sphinx 是索引和搜索文档所需资源最少且最快的方法,并且 django-sphinx 是 sphinx 客户端之上的一个很好的包装器。

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

谷歌代码页 Django 搜索 表明它不再处于积极开发状态,并建议 草垛 或者 索兰戈.

谢谢加思。我看到 djangosearch 想成为官方的 Django 搜索,但我很犹豫是否使用它,因为我找不到任何文档!幸运的是,有一个 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")

我只需要一个 很快 对于内部应用程序来说,这是一个简单的解决方案。

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

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

您可能需要考虑让雅虎通过他们的“构建您自己的搜索服务”(BOSS) 来完成所有艰苦的工作。这是一篇很棒的博客文章,可引导您完成整个过程:http://www.peterkrantz.com/2008/yahoo-search-in-django/

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

在快速评估 Django 的所有现有搜索插件后,我发现这个插件最灵活且最易于使用。虽然有些地方有些粗糙,但它仍然是使用力量的最佳方式 夏皮安 Django 项目内的搜索引擎。

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

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

我想我必须向 Djapian 大声喊叫。

它坚如磐石……只需拉下源代码发行版并查看内部即可。一流的代码,虽然没有太多评论..

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

谢谢乔,

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

我发现 德乔什 它依赖于纯Python外部搜索引擎 嗖嗖 与我的“Python”大脑很好地配合。

如果您愿意使用第三方搜索引擎我可以推荐 雅虎老板django-bosssearch.

Yahoo BOSS 是一项付费服务​​,但它使您无需在服务器上设置和维护其他搜索软件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top