1.1. 概述
Compass为应用集成搜索引擎功能提供了比较周全的考虑。下面的图展现了Compass不同的模块,随后对它们进行了一些简要的描述。
Compass概述
Compass Core是Compass最基本的部分。它有对Lucene的扩展API:其中包含了事务级索引、搜索引擎抽象和ORM,还有事务管理集成,以及不同的映射方式(OSEM, XSEM和RSEM)等等。Compass Core的目标是可以适用在不同的情景和环境下,并简化核心操作,方便使用。
Compass Gps的目标是为了整合不同的数据源。其中主要的一个特性就是整合各种ORM框架(Hibernate, JPA, JDO, OJB),可以让搜索引擎和ORM内容视图之间透明化集成。另外还包括JDBC的集成,允许索引数据库的内容——用户就可以通过配置SQL表达式的方式来提取该内容。
Compass Spring即Compass中集成了Spring框架。Spring,作为一个易于使用的应用框架,提供了一个简单的开发模式(基于依赖注入等)。Compass集成Spring的方式,类似于ORM框架近乎无缝地集成到Spring中——用户感觉就像在使用Spring自己提供的持久功能。Compass还集成了Spring的事务抽象层、AOP支持和MVC库。
1.2. 所涉及技术
接下来对Compass所涉及到的一些技术进行一些简要的介绍:
1.2.1. Lucene
直接使用Lucene
在Compass中,允许用户直接使用大部分的Lucene类。如果你的应用中有自己专门的查询器,分析器或者过滤器,你也能够在Compass直接使用它们。Compass有它自己的索引结构,索引可以划分成子索引,每个子索引都是一个完全功能意义上的Lucene索引。
搜索引擎抽象
Compass提供了一个搜索引擎的抽象,具体的实现都是基于Lucene的。Lucene是一个令人惊异的、快速的和稳定的搜索引擎(或IR库),现在的问题在于我们在应用中整合Lucene只能使用其底层的用法和API。
对于使用过或了解Lucene的人,介绍Compass的新特性是非常有必要的。Resource是Compass在Lucene Document上的一个抽象,而Property是Compass在Lucene Field上的一个抽象。两者并没有在Lucene的实现上加太多东西,除Resource多加了一个Alias以外。想了解更多的信息,请阅读第5章:搜索引擎。
RSEM - Resource/Search Engine Mapping
RSEM-资源/搜索引擎映射
Resource是Compass中最底层的数据对象,可以使用不同的映射技术来连接它们。Compass使用的一种底层映射机制称为RSEM(资源/搜索引擎映射),这种机制允许说明性的定义资源映射的精确度。RSEM适合已经使用Lucene的现有系统(能最小限度地升级到Compass中),或者一个没有丰富的领域模型(对象或者XML)的应用。
另外,一个基于Compass转换框架的特性:一个Property值不能肯定就是一个字符串(正如Lucene的Field)。对象也能被当成一个值,不管是默认的还是指定的转换。想了解更多内容,请阅读第8章:RSEM-资源/搜索引擎映射。
简单API
Compass拥有一套非常简单的API。如果你有使用过一个ORM工具(Hibernate,JPA等)的经验,你在用Compass API时会感觉非常舒适(习惯使然)。同样,Lucene有三个主类:IndexReader,Searcher和IndexWriter。对于那些没有使用过Lucene的人来说,要了解Lucene索引机制是一件很困难的事情。Compass提供了一个单一的接口,包含了所有相关的操作。这样,使用者就从那些繁琐的底层操作中解脱了出来。想了解更多的内容,请阅读第2章:介绍,第11章:与对象共舞。
事务级索引与整合
Lucene是非事务的。当试图将Lucene跟其他事务级的资源(如数据库和消息)进行整合时,会产生一些问题。Compass支持两阶段提交事务(读提交和序列化),这是建立在Lucene索引的分割基础上的。该实现提供了快速的提交(比Lucene更快)——因为Compass对此进行了最优化。想了解更多的内容,请阅读5.6:事务,5.9:最优化。
在支持事务级索引的基础上,Compass集合了不同的事务管理(如JTA),而且自身也提供了一个。想了解更多的内容,请阅读第10章:事务。
快速升级
在Lucene中,为了升级,你不得不先删除老的Document,再创建一个新的Document。这本身是件很麻烦的事,尤其是你需要通过两个不同的接口完成删除(IndexReader)和创建(IndexWriter)操作。感谢Compass提供了事务级索引。事实上,在Compass中每一个Resource都有唯一标识(通过映射定义),你能很简单、快捷的完成更新操作(通过save来实现)。
“All”支持
使用Lucene时,是不会搜索存储在Document中所有域的。它创建了一个综合的域,即提供一个“all”域,使得查询索引时可以使用它。Compass也为你提供了“all”支持,在默认的情况下,将创建“all”域并让其担当搜索的默认域。当然,你可以通过配置使“all”域屏蔽或者激活,也可修改它的名字,或者是否让它担当搜索的默认域。另外,也可以从所有的属性中排除其中确定的几个属性映射。
索引片断
当构建一个Lucene使能应用,有时(性能原因)索引需要分割成几个部分。Compass将自动把索引分片成多个子索引——采用的是一个可配置的子索引的散列函数,它允许散列不同的搜索对象(Resource,映射对象或者XML对象)到子索引中。想了解更多的内容,请阅读5.5:索引结构。
------------------------------------------------------------------------------------------------
注:“《compass-reference》翻译计划”
分享到:
相关推荐
compass-reference.pdf
mongodb-windows安装包: mongodb-compass-1.31.2-win32-x64.msi 打开直接安装
compass-reference,compass
Grove - 3-Axis Digital Compass v1.2 for arduino use Here you can fid the best schematic chart to use it in electronic Eagle conception
mongodb官方客户端可视化工具compass-1.26.1-win32-x64
MongoDB的讲义,资源包。与大数据hadoop学习相关,包含快速入手MongoDB和MongoDB集群安全两个部分,以及mongoDB的可视化工具zip包MongoDB-compass
mongodb-compass-community-1.21.2-win32-x64.exe mongodb-compass-community-1.21.2-win32-x64.exe mongodb-compass-community-1.21.2-win32-x64.exe mongodb-compass-community-1.21.2-win32-x64.exe
Compass需要的包3:compass-core.jar
mongodb-compass-community-1.18.0-win32-x64.msi
前端开源库-compass-mixins指南针混音器,指南针样式表
最新版mongodb-compass-1.16.3-win32-x64
mongodb-compass-1.23.0-win32-x64.zip官网下载的mongodb界面管理工具
compass-2.2.0.zip,Compass是第一个实现java搜索引擎的开源框架,它是基于Lucene之上的,提供更简单的搜索引擎API,事务支持,对象到搜索引擎映射
这个是mongodb-compass的1.23最新版本。花了我好长时间才下载完。各位请给我个赞 这个是mongodb-compass的1.23最新版本。花了我好长时间才下载完。各位请给我个赞 这个是mongodb-compass的1.23最新版本。花了我好长...
Pre-Processador-CSS --- Sass-Compass:Aplicaçãodopré-processadorSass com o框架Compass
sass与compass实战--源代码 下载地址:https://github.com/pengwynn/sass-and-compass-in-action
一般的方法是通过gem进行安装,而gem又依赖于Ruby环境,所以要先安装Ruby,然后安装sass和compass,compass的gem安装包下载
罗盘扩展程序,可在Photoshop渐变叠加层和CSS线性渐变之间进行转换。 允许您直接从图层样式中获取值,并在纯CSS中创建相同的渐变。 指南针扩展程序还包括混合模式翻译。 此代码捆绑为Compass扩展,但也与Boubon...