标签归档:whoosh

Whoosh性能

早些时候就在google到Whoosh和xapian的性能对比文章,只是由于文章被墙,今天才翻墙看到。
文章是xapian作者写的。就文章里的对比结果来看,whoosh和xapian的性能差距还是比较明显。索引和搜索的速度有近4倍的差距,在full cache情况下的性能差距更是达到了60倍。
除算法原因外,whoosh的纯python定位也决定了whoosh很难达到其他c/java的搜索引擎库的速度。
当然,whoosh的优势是易用性,在考虑性能的情况下whoosh不是首先。
注:Xapian performance comparision with Whoosh

纯python的全文搜索组件Whoosh

haystack 是 django 全文搜索的一个中间件,可以粘合 django 应用和 solr、xapian、whoosh 全文搜索引擎。

solr和xapian是早就知道的,Whoosh就没听过了。简单的了解后感觉这东西还是非常不错的。whoosh是一个纯python实现的全文搜索引擎。对python应用而言,whoosh的纯python实现,使whoosh的集成会容易很多,而且扩展起来也会容易很多。

下面是对Whoosh官方简介的翻译

原文地址http://whoosh.ca/wiki

Whoosh: 高效的纯python全文搜索组件

Whoosh是一个纯python实现的全文搜索组件。Whoosh不但功能完善,还非常的快。

Whoosh的作者是MattChaput,由Side Effects Software公司开发。项目的最初用于Houdini(Side Effects Software公司开发的3D动画软件)的在线帮助系统。Side Effects Software公司将该项目开源。

主要特性

  • 敏捷的API(Pythonic API)。
  • 纯python实现,无二进制包。程序不会莫名其妙的崩溃。
  • 按字段进行索引。
  • 索引和搜索都非常的快 — 是目前最快的纯python全文搜索引擎。
  • 良好的构架,评分模块/分词模块/存储模块等各个模块都是可插拔的。
  • 功能强大的查询语言(通过pyparsing实现功能)。
  • 纯python实现的拼写检查(目前唯一的纯python拼写检查实现)

为啥选择Whoosh

  • 纯python实现,省了编译二进制包的繁琐过程。
  • python代码比java更容易读懂,而且用起来也更方便。(翻者注:这个容易引发口水)
  • 在很多时候易用性比单纯的最求速度更重要。

Whoosh从其他的开源搜索引擎中获取了大量的灵感。 基础构架参考Lucene,使用KinoSearch的索引算法,部分评分算法来自Terrier,英文的词语态变化来自Minion.