读书人

Compass入门及其与Spring、iBatis的调

发布时间: 2012-08-10 12:19:33 作者: rapoo

Compass入门及其与Spring、iBatis的整合
开始之前什么是Compass与Spring、iBatis的整合与Lucene的比较经验总结相关资源


开始之前

本文是Compass的入门指引,通过实例介绍了Compass与iBatis、Spring的整合,适合不了解Compass的读者,但要求读者了解Lucene、Spring和iBatis,写过一些简单的应用。
文中使用的软件包:

?

Compass入门及其与Spring、iBatis的调整

?

什么是Compass

Compass是一个Java搜索框架。它封装了Lucene,增加了一些Lucene不支持的特性(例如实时更新索引),支持各种数据(Java对象、xml、json)到索引的映射,支持各种数据源(JDBC, Hibernate, iBatis)。

?

Compass入门及其与Spring、iBatis的调整

?

图解(看得烦的直接跳过看下面的例子吧):

Compass - 一般在程序启动时建立并被整个程序共享,主要用于建立CompassSession并通过其管理索引数据。CompassSession - 用于处理数据的session。CompassTransaction - 手动进行事务管理,如果不使用,Compass会自动管理事务。CompassTemplate - 将session和transaction透明化。数据到索引的各种映射 - OSEM, XSEM, JSEM, RSEM。支持通过程序、XML、JSON进行配置。CompassGps - Gps的核心模块,管理GpsDevice,有两种实现:SingleCompassGps和DualCompassGps。CompassGpsDevice - 处理各种数据源到索引的操作:JDBC, Hibernate, iBatis等。不能独立使用而必须融合到CompassGps中。

?

与Spring、iBatis的整合建索引

1、假设Spring + iBatis的框架已经搭建好。

2、配置Domain的OSEM

                ??? 但如果只对单个表建索引,不会有这个问题。应该是Compass的一个bug,不知道新版本有没有解决。

                ?

                2、最好自己封装排序字段和分页。

                ?

                3、总结,Compass比较适用于逻辑不太复杂的应用,会比Lucene少写很多代码。但如果需要一些较为特殊的需求,或者对效率要求比较高,还是用Lucene吧。

                ?

                相关资源

                Compass入门指南:http://www.yeeach.com/2008/03/23/compass-%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97/

                ?

                全文检索的基本原理:http://blog.csdn.net/forfuture1978/archive/2009/10/22/4711308.aspx

                ?

                大型网站的Lucene应用:http://www.luanxiang.org/blog/archives/605.html

                ?

读书人网 >Web前端

热点推荐