《compass-reference》翻译计划之:1.1概述和1.2所涉及技术(续)
1.2.2. 领域模型
Compass的一个主要特性就是OSEM(对象/搜索引擎映射)。可以采用annotation或者xml定义(或联合使用),把丰富的领域模型映射到搜索引擎中。想了解更多的内容,请阅读第6章:OSEM-对象/搜索引擎映射。
1.2.3. ... Xml 模型
Compass的另一个主要特性就是XSEM(XML/搜索引擎映射)。如果你的应用是构建在XML数据的基础上,你就可以采用基于xpath表达式上的xml映射定义,直接把它映射到搜索引擎中。想要了解更多的内容,请阅读第7章:XSEM-XML映射到搜索引擎中。
1.2.4. 无模型
如果应用中没有指定的领域模型(例如一个基于properties的消息系统),可以采用RSEM(资源/搜索引擎映射)。一个Resource可以当作是一个哈希表,允许把它当作完全开放的数据保存在Compass中。一个资源映射定义必须要有资源的类型(types),同时至少定义一个资源id(当作其身份的识别)。另外可以增加资源的属性映射。想了解更多的内容,请阅读第18章:RESM-资源/搜索引擎映射。
1.2.5. ... ORM 框架
构建于Compass核心之上,Compass Gps能跟大部分的流行ORM框架整合。这种整合由以下两个特点组成:
索引操作
通过ORM框架,使用Compss(OSEM方式)把数据库中的数据,自动索引到搜索引擎中。在OSEM和ORM中定义的对象能被直接索引,而且可以添加自定义的过滤器。
镜像操作
在ORM框架中,必须支持事件注册机制,而Compass能自动注册,这是利用其自身的事件监听器,通过ORM的API把数据库中的改变反射到搜索引擎中。
想了解更多的内容,请阅读第14章:介绍。ORM框架支持在第16章:嵌入Hibernate,第18章JPA(Java持久化API),第19章:嵌入OpenJPA,第22章:JDO(Java数据对象),第23章:OJB(对象关联代理程序)和第24章:iBatis。
1.2.6. Spring 框架
Compass的目标:无缝集成Spring框架(开发者用它就感觉在用Spring一样)。
首先要集成的跟Spring集成ORM类似,在Spring context中使用LocalCompassBean和CompassDaoSupport来配置Compass的持久化。想了解更多内容,请阅读第25章:介绍和第26章:DAO 支持。
其次是Spring AOP的集成,通过Spring的原子应用,提供关于促进镜像数据变动的简单参考说明。对于应用中有一个数据源或者没有Gps设计的情况(或者没有镜像能力,如:iBatis),这个镜像参考说明能使数据源和Compass索引同步变动。想了解更多内容,请阅读的第31章:Spring AOP。
再次是Spring的PlatformTransactionManager的抽象集成,Compass使用SpringSyncTransactionFactory来跟Spring的事务同步运作。这就允许Compass工作在Spring指定的事务管理环境下,就像HibernateTransactionManager一样。想了解更多内容,请阅读的第27章:Spring 事务。
还有,在web应用中使用Spring MVC,Compass提供了一个搜索和索引控制器。索引控制器能在一个CompassGps中自动完成索引操作,只有初始化视图和结果视图需要手工来操作。搜索控制器能自动完成搜索操作(采用分页),只有初始化搜索和搜索结果视图(通常是同一个)需要手工来操作。想了解更多内容,请阅读第32章:Spring MVC支持。
最后,LocalCompassBean配置时可以使用基于Spring2的新schema格式。
------------------------------------------------------------------------------------------------
注:“《compass-reference》翻译计划”