国际上这类开源软件很多,工程界以Lucene为代表,学术界以Lemur为代表。Lucene虽然功能强大,但是性能偏低,处理的数据上不了规模;Lemur主要用于信息检索相关的实验,虽能处理Tb级别数据,但是性能也较差,而且不太适合工程中使用。这两个开源软件都可以支持中文但是支持得不够好。虽然Lemur的作者很多都是中国人,但Lemur并非中国所有。和Lucene和Lemur相比,FirteX具有更高的性能,天然支持中文,使用方便,扩展灵活,自主研发,是国内信息检索领域的第一个开源平台。
下面是FirteX的部分特性列表,更多信息可以登录 http://www.firtex.org 。
FirteX的主要特征如下:
开放式架构:
FirteX采用面向对象的C++语言实现,系统各个组成部分高度模块化,不仅是一个检索系统,同时也是一个全文索引和检索框架;多个组件基于插件设计,不仅可以采用C/C++对系统进行扩展,也可以通过内置的跨平台COM库设计COM组件来扩展系统。
功能:
支持增量索引,差量索引,多字段索引,提供了3种前向索引方式;支持纯文本,HTML,PDF等文件格式;提供快速中文分词;从底层到高层,提供了多种索引访问接口,灵活自由地使用索引文件;提供丰富的检索语法,支持多字段检索,日期范围检索,检索结果自定义排序等。
性能:
在Pentium 4 2.8G 2GRAM的机器上超过200Mb每分钟的索引速度,在近7G的索引文件(100G网页,11G纯文本的索引)上检索,能在数毫秒内返回查询结果;支持Tb数量级的文本索引和检索;
易用性:
对于简单使用者:直接提供了文本文件,HTML,PDF等文件格式解析器,提供了快速中文分词,提供了文件目录,文件列表,TREC及FirteX格式文档集的直接支持,内置的组件能在大多数情况下满足使用者的要求;系统采用类似于XML格式的配置文件配置系统,可配置内容包括索引内存使用量,索引文件数目、大小控制,索引合并控制,数据集元数据定义及其索引存储方案定义等,可以根据数据集和机器配置情况,灵活配
置整个系统,无需编写代码。
对于研究人员:FirteX提供了TREC文档集解析器,可以直接对TREC数据建立索引和检索;提供了3种前向索引方式,可以直接用来做文本分类、聚类,摘要等 实验;直接提供了中文快速分词,处理中文数据无需编写额外代码;对于索引文件,提供了多种访问方式,包括索引检索,倒排文档数据直接访问等,可以用来做FirteX不支持的一些实验。
对于开发者:系统采用面向对象的软件设计方法设计,各个组成部分耦合性低,从应用层模块到系统核心层模块,均可单独修改、升级或替换;扩展既可以在源代码上直接进行,也可以使用非C/C++语言通过COM组件扩展。通过FirteX可以快速搭建桌面搜索,站内搜索,行业搜索,公众搜索引擎等应用。