传统的全文检索都是基于数据库的,SQL Server、Oracle、mysql 都提供全文检索,但这些比较大,不适合单机或小应用程序(Mysql4.0以上可以作为整合开发),Mysql也不支持中文。
Lucene是一个高性能、纯Java的全文检索引擎,而且免费、开源。Lucene几乎适合于任何需要全文检索的应用,尤其是跨平台的应用。Lucene的作者Doug Cutting是一个资深的全文检索专家,刚开始,Doug Cutting将Lucene发表在自己的主页上,2000年3月将其转移到Sourceforge,于2001年10捐献给Apache,作为Jakarta的一个子工程。
CLucene是C++版的全文检索引擎,完全移植于Lucene,采用 STL 编写。
编译了一下 C++ 版本的 Lucene - CLucene - a C++ search engine http://sourceforge.net/projects/clucene/
在 MSVC6 下修改了一些编译选项后编译成功,测试了一下,好象不支持对中文的全文检索,估计是分词部分对中文不支持,但是据说 Lucene 的全文检索架构是很 NB 的,有空研究研究 Lucene 的全文检索架构然后再加上中文分词功能吧,不加中文分词功能可没办法用。
BTW: 不知道 Java 版的 Lucene 稳定性怎样,但是 CLucene 的稳定性比较差,据说还有 n 多的内存泄露。
Lucene是一个高性能、纯Java的全文检索引擎,而且免费、开源。Lucene几乎适合于任何需要全文检索的应用,尤其是跨平台的应用。Lucene的作者Doug Cutting是一个资深的全文检索专家,刚开始,Doug Cutting将Lucene发表在自己的主页上,2000年3月将其转移到Sourceforge,于2001年10捐献给Apache,作为Jakarta的一个子工程。
CLucene是C++版的全文检索引擎,完全移植于Lucene,采用 STL 编写。
编译了一下 C++ 版本的 Lucene - CLucene - a C++ search engine http://sourceforge.net/projects/clucene/
在 MSVC6 下修改了一些编译选项后编译成功,测试了一下,好象不支持对中文的全文检索,估计是分词部分对中文不支持,但是据说 Lucene 的全文检索架构是很 NB 的,有空研究研究 Lucene 的全文检索架构然后再加上中文分词功能吧,不加中文分词功能可没办法用。
BTW: 不知道 Java 版的 Lucene 稳定性怎样,但是 CLucene 的稳定性比较差,据说还有 n 多的内存泄露。