对数据库或是服务器上的文件进行全文检索,肯定是一个常用的需求。有关全文检索的基本原理和概念,可以看看这篇文章

做全文检索的开源代码,现在已经有很多,可以试情况选择。

  1. Apache Lucene 大名鼎鼎,但是是用 Java 写的,估计很多人都不喜欢 Java,反正我一看到 Java 就觉得烦。
另外,它有多种接口的封闭,PyLucene 或是 Lucene.Net。Lucene.Net 还可以,不难用,但是 PyLucene 我基本上连怎么安装都没搞清楚,官方文档太烂,并且,讨厌 Ant 这个东西。 

由 Lucene 衍生出来的还有 [Apache solr](http://lucene.apache.org/solr/) 工程,这个是一个完整的全文检索解决方案。 
  1. Xapian C++ 写的,还提供多种语言版本的接口,感觉这个是个不错的选择。

  2. Sphinx C++ 写的,但是官网做得太烂,配色差、内容不好找,都没啥兴趣看下去。

  3. 爬虫工具 Nutch 从网上抓取内容,再用上述类似 Lucene 的工具进行检索,可以使用 Apache Nutch 来作为爬虫工具。

然后,[配合 Nutch 和 Solr 来进行搜索](http://wiki.apache.org/nutch/NutchTutorial#A6._Integrate_Solr_with_Nutch)。 
  1. Whoosh Python 版本的全文检索库,全用 Python 写的,喜欢 Python 的人估计会比较喜欢。
因为安装和使用都比较简单,还跨平台,可以用来做一些原型系统,或是检索的算法学习等。 

至于性能,好像没有看到有人贴和 Lucene 的对比。 

可以使用 [Scrapy](http://scrapy.org/) 来建立一个爬虫系统,并且和 Whoosh 结合使用,来进行搜索。