下面阐述Compass的一些名词:
1:Resource,Compass对Lucene的Document的抽象,与Alias联系在一起。
2:Property,Compass对Lucene的Field的抽象。通过Compass Converter framework将不是String类型的对象转换为可以索引的Property。
3:RSEM:Resource/Search Engine Mapping,资源搜索引擎影射。
4:Lucene采用IndexReader、Searcher、IndexWriter三个类完成索引搜索的功能。而Compass只有一个简单的接口,能够通过该接口实现所有的操作。
5:事务索引和集成:lucene是非事务性的。无法和事务型的系统进行结合。Compass提供两种提交事务:read_committed 和 serializable。
6:快速更新:lucene中,执行更新必须先删除旧的Document,然后再新建一个Document。由于Compass支持事务索引,因此每个要保存的Resource都必须有一个唯一标识。这样更新的效率会更高。
7: All 支持:在lucene中,没有办法对一个Document的所有的字段进行搜索,要对所有字段进行搜索,必须创建一个包含所有field的一个 "all"field。compass默认地建立一个"all"属性,并且该"all"属性充当默认的搜索Field,当然,"all"property 可以设置成enabled或disabled、重命名或者不充当默认的搜索Property,也可以排除all中的某些属性。
8:索引分块,
来源:http://bbs.xml.org.cn/blog/more.asp?name=lhwork&id=18505
作者: 地狱男爵
compass官方网站: http://www.compassframework.org/
Compass是一流的JAVA搜索框架,可以快速修饰你的应用,使其具备Searchable的能力。
在没有Compass,单纯用Lucene的环境里,一般做法是定期遍历数据库,编码将里面的内容转为索引。
而Compass通过与 Hibernate和 Spring的结合,简单的为Domain Object提供了到Lucene引擎的映射,而且索引库能够随Domain Object同步更新(Data Mirror)。
1 Quick Start
2 对象/搜索引擎映射(OSEM)
|