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 2.1.0 参考文档知识点解析 #### 概览 ...Compass 提供了一个强大而灵活的搜索引擎解决方案,通过深入理解这些概念和技术细节,开发者可以更好地利用 Compass 来满足其应用程序的搜索需求。
mongodb-windows安装包: mongodb-compass-1.31.2-win32-x64.msi 打开直接安装
compass-reference,compass
mongodb可视化管理mongodb-compass-1.43.0-win32-x64.exe mongodb compass官网下载地址:https://www.mongodb.com/try/download/compass mongodb相关下载地址: mongodb社区版:...
"mongodb-compass-1.27.1-win32-x64.zip"是一个针对Windows 64位系统的MongoDB Compass版本的压缩包。 MongoDB Compass的核心功能包括: 1. **数据可视化**:它提供了一个直观的界面来查看和理解数据库的结构,...
在“mongodb-compass-community-1.16.4-win32-x64.zip”这个压缩包中,包含了MongoDB Compass的社区版,它可以帮助用户直观地查看和操作MongoDB数据库。以下是压缩包内各个文件的作用: 1. **snapshot_blob.bin**:...
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.42.1-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 mongodb-compass-community-1.21.2-win32-x64.exe
在这个版本"mongodb官方客户端可视化工具compass-1.26.1-win32-x64"中,我们关注的是Windows 32位和64位系统的版本。 Compass的主要功能包括: 1. 数据浏览:它允许用户以表格、图表或者JSON格式查看和编辑数据,...
"mongodb-compass-1.23.0-win32-x64.zip" 是一个针对Windows 32位和64位系统的MongoDB Compass版本的压缩包,用户可以从官方网站下载此版本来安装和使用。 MongoDB Compass的核心功能包括: 1. 数据浏览:提供可视...
Compass Mixins 是一个非常重要的前端开发工具,尤其在 Sass(Syntactically Awesome Style Sheets)环境中,它极大地提升了CSS编写效率和代码复用性。这个开源库为开发者提供了丰富的预定义混合(mixins),帮助...
Compass需要的包3:compass-core.jar
mongodb-compass-community-1.18.0-win32-x64.msi
在Android平台上,开发...以上就是"Compass-master.zip"项目所涉及的关键技术和知识点。通过对这些内容的理解和实践,开发者不仅可以创建一个功能齐全的指南针应用,还能深入了解Android系统的传感器机制和UI交互设计。
最新版mongodb-compass-1.16.3-win32-x64
【网络安全】黑客工具速查表是一份用于辅助渗透测试、安全评估和红客活动的专业参考资料。这份由Compass Security发布的版本1.1速查表包含了2020年1月更新的基本Linux网络工具、信息收集方法、TCP工具、TLS工具以及...
7. **性能优化**:Compass对Lucene进行了优化,例如通过内存映射文件和缓存技术提高检索速度,同时提供索引分片和复制策略,以适应大规模的数据和高并发环境。 8. **多语言支持**:Compass能够处理多种语言的文本,...