`

《compass-reference》翻译计划之:1.1概述和1.2所涉及技术

阅读更多

1.1. 概述

 

 

Compass为应用集成搜索引擎功能提供了比较周全的考虑。下面的图展现了Compass不同的模块,随后对它们进行了一些简要的描述。

 

 

Compass概述

 

Compass CoreCompass最基本的部分。它有对Lucene的扩展API:其中包含了事务级索引、搜索引擎抽象和ORM,还有事务管理集成,以及不同的映射方式(OSEM, XSEMRSEM)等等。Compass Core的目标是可以适用在不同的情景和环境下,并简化核心操作,方便使用。

 

Compass Gps的目标是为了整合不同的数据源。其中主要的一个特性就是整合各种ORM框架(Hibernate, JPA, JDO, OJB),可以让搜索引擎和ORM内容视图之间透明化集成。另外还包括JDBC的集成,允许索引数据库的内容——用户就可以通过配置SQL表达式的方式来提取该内容。

 

Compass SpringCompass中集成了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的新特性是非常有必要的。ResourceCompassLucene Document上的一个抽象,而PropertyCompassLucene Field上的一个抽象。两者并没有在Lucene的实现上加太多东西,除Resource多加了一个Alias以外。想了解更多的信息,请阅读第5章:搜索引擎。

 

RSEM - Resource/Search Engine Mapping

RSEM-资源/搜索引擎映射

 

ResourceCompass中最底层的数据对象,可以使用不同的映射技术来连接它们。Compass使用的一种底层映射机制称为RSEM(资源/搜索引擎映射),这种机制允许说明性的定义资源映射的精确度。RSEM适合已经使用Lucene的现有系统(能最小限度地升级到Compass中),或者一个没有丰富的领域模型(对象或者XML)的应用。

 

 

另外,一个基于Compass转换框架的特性:一个Property值不能肯定就是一个字符串(正如LuceneField)。对象也能被当成一个值,不管是默认的还是指定的转换。想了解更多内容,请阅读第8章:RSEM-资源/搜索引擎映射。

 

简单API

Compass拥有一套非常简单的API。如果你有使用过一个ORM工具(HibernateJPA等)的经验,你在用Compass API时会感觉非常舒适(习惯使然)。同样,Lucene有三个主类:IndexReaderSearcherIndexWriter。对于那些没有使用过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》翻译计划”

 

 

7
1
分享到:
评论
3 楼 renlei413326889 2012-07-20  
快速升级 -->应该是快速更新吧
2 楼 liushilin2008 2008-11-14  
期望看到其它章节的汉语参考
1 楼 liushilin2008 2008-11-14  
谢谢啦

相关推荐

    compass-reference.pdf

    ### Compass 2.1.0 参考文档知识点解析 #### 概览 ...Compass 提供了一个强大而灵活的搜索引擎解决方案,通过深入理解这些概念和技术细节,开发者可以更好地利用 Compass 来满足其应用程序的搜索需求。

    compass-reference

    compass-reference,compass

    mongodb-windows安装包: mongodb-compass-1.31.2-win32-x64.msi

    mongodb-windows安装包: mongodb-compass-1.31.2-win32-x64.msi 打开直接安装

    mongodb-compass-community-1.16.4-win32-x64.zip

    在“mongodb-compass-community-1.16.4-win32-x64.zip”这个压缩包中,包含了MongoDB Compass的社区版,它可以帮助用户直观地查看和操作MongoDB数据库。以下是压缩包内各个文件的作用: 1. **snapshot_blob.bin**:...

    Grove---3-Axis-Digital-Compass-v1.2.rar_The 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.42.1-win32-x64.exe

    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-community-1.21.2-win32-x64.exe

    windows版本 mongodb可视化管理mongodb-compass-1.43.0-win32-x64.exe

    mongodb可视化管理mongodb-compass-1.43.0-win32-x64.exe mongodb compass官网下载地址:https://www.mongodb.com/try/download/compass mongodb相关下载地址: mongodb社区版:...

    mongodb官方客户端可视化工具compass-1.26.1-win32-x64

    在这个版本"mongodb官方客户端可视化工具compass-1.26.1-win32-x64"中,我们关注的是Windows 32位和64位系统的版本。 Compass的主要功能包括: 1. 数据浏览:它允许用户以表格、图表或者JSON格式查看和编辑数据,...

    mongodb-compass-1.23.0-win32-x64.zip

    "mongodb-compass-1.23.0-win32-x64.zip" 是一个针对Windows 32位和64位系统的MongoDB Compass版本的压缩包,用户可以从官方网站下载此版本来安装和使用。 MongoDB Compass的核心功能包括: 1. 数据浏览:提供可视...

    前端开源库-compass-mixins

    Compass Mixins 是一个非常重要的前端开发工具,尤其在 Sass(Syntactically Awesome Style Sheets)环境中,它极大地提升了CSS编写效率和代码复用性。这个开源库为开发者提供了丰富的预定义混合(mixins),帮助...

    compass-core.jar

    Compass需要的包3:compass-core.jar

    mongodb-compass-community-1.18.0-win32-x64.msi

    mongodb-compass-community-1.18.0-win32-x64.msi

    mongodb-compass-1.16.3-win32-x64

    最新版mongodb-compass-1.16.3-win32-x64

    Compass-master.zip

    在Android平台上,开发...以上就是"Compass-master.zip"项目所涉及的关键技术和知识点。通过对这些内容的理解和实践,开发者不仅可以创建一个功能齐全的指南针应用,还能深入了解Android系统的传感器机制和UI交互设计。

    黑客工具速查表 / Hacking Tools Cheat Sheet @ShowMeAI研究中心

    【网络安全】黑客工具速查表是一份用于辅助渗透测试、安全评估和红客活动的专业参考资料。这份由Compass Security发布的版本1.1速查表包含了2020年1月更新的基本Linux网络工具、信息收集方法、TCP工具、TLS工具以及...

    compass-2.2.0.zip

    7. **性能优化**:Compass对Lucene进行了优化,例如通过内存映射文件和缓存技术提高检索速度,同时提供索引分片和复制策略,以适应大规模的数据和高并发环境。 8. **多语言支持**:Compass能够处理多种语言的文本,...

    mongodb-compass-1.22.1-win32-x64.zip

    这个“mongodb-compass-1.22.1-win32-x64.zip”文件是一个针对Windows 32位和64位系统的压缩包,包含了MongoDB Compass的1.22.1版本。让我们详细了解一下MongoDB Compass以及压缩包内的文件内容: 1. MongoDB ...

Global site tag (gtag.js) - Google Analytics