下面闡述Compass的一些名詞:
1:Resource,Compass對Lucene的Document的抽象,與Alias聯(lián)系在一起。
2:Property,Compass對Lucene的Field的抽象。通過Compass Converter framework將不是String類型的對象轉(zhuǎn)換為可以索引的Property。
3:RSEM:Resource/Search Engine Mapping,資源搜索引擎影射。
4:Lucene采用IndexReader、Searcher、IndexWriter三個類完成索引搜索的功能。而Compass只有一個簡單的接口,能夠通過該接口實(shí)現(xiàn)所有的操作。
5:事務(wù)索引和集成:lucene是非事務(wù)性的。無法和事務(wù)型的系統(tǒng)進(jìn)行結(jié)合。Compass提供兩種提交事務(wù):read_committed 和 serializable。
6:快速更新:lucene中,執(zhí)行更新必須先刪除舊的Document,然后再新建一個Document。由于Compass支持事務(wù)索引,因此每個要保存的Resource都必須有一個唯一標(biāo)識。這樣更新的效率會更高。
7: All 支持:在lucene中,沒有辦法對一個Document的所有的字段進(jìn)行搜索,要對所有字段進(jìn)行搜索,必須創(chuàng)建一個包含所有field的一個 "all"field。compass默認(rèn)地建立一個"all"屬性,并且該"all"屬性充當(dāng)默認(rèn)的搜索Field,當(dāng)然,"all"property 可以設(shè)置成enabled或disabled、重命名或者不充當(dāng)默認(rèn)的搜索Property,也可以排除all中的某些屬性。
8:索引分塊,
來源:http://bbs.xml.org.cn/blog/more.asp?name=lhwork&id=18505
作者: 地獄男爵
compass官方網(wǎng)站: http://www.compassframework.org/
Compass是一流的JAVA搜索框架,可以快速修飾你的應(yīng)用,使其具備Searchable的能力。
在沒有Compass,單純用Lucene的環(huán)境里,一般做法是定期遍歷數(shù)據(jù)庫,編碼將里面的內(nèi)容轉(zhuǎn)為索引。
而Compass通過與 Hibernate和 Spring的結(jié)合,簡單的為Domain Object提供了到Lucene引擎的映射,而且索引庫能夠隨Domain Object同步更新(Data Mirror)。
?
1?Quick Start
2?對象/搜索引擎映射(OSEM)
|