`
neptune
  • 浏览: 362184 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

Compass - springside 中的应用

阅读更多
URL:

http://www.blogjava.net/hellboys/archive/2007/09/16/49311.html

CONTENT:

作者: 地狱男爵
1.概述

springside 官方网站: http://www.springside.org.cn

网站: http://www.compassframework.org/

Compass 是一流的开放源码JAVA搜索引擎框架,对于你的应用修饰,搜索引擎语义更具有能力。依靠顶级的Lucene搜索引擎,Compass 结合了,像 Hibernate和 Sprin的流行的框架,为你的应用提供了从数据模型和数据源同步改变的搜索力.并且添加了2方面的特征,事物管理和快速更新优化. Compass的目标是:把java应用简单集成到搜索引擎中.编码更少,查找数据更便捷 .
2.Object/Search Engine Mapping - 配置XML

OSEM: 对象搜索引擎影影射(Object Search Engine Mapping),通过xml配置文件,提供了POJO's (Plain Old Java Objects)到搜索引擎.
2.1 XML配置
一般都是 *.cpm.xml 形式 .

1) package指定了对应java类的包名,
2)class为pojo类名.contract为公共部分, 子类被可以extends.Property 对 java类的属性。
3)资源的Property引用的Search Engine meta-data.
注意: id为类标识.

<compass-core-mapping package="org.springside.bookstore.domain"> 

<contract alias="product"> <id name="id"/> <property name="name"> <meta-data>${springside.name}</meta-data> </property> <property name="descn"> <meta-data>${springside.descn}</meta-data> </property> </contract>

<class name="Book" alias="${springside.book}" extends="product"> <property name="author"> <meta-data>${springside.author}</meta-data> </property>
<property name="publisher"> <meta-data>${springside.publisher}</meta-data> </property> </class>

</compass-core-mapping>

3.Common Meta Data

定义Compass配置文件(*.cfg.xml). Compass 自动替换OSEM对应的原数据(Common meta-data)标签的值. ${...} 很像ant.
简单的可以理解为alias对应为表,meta-data为column.具体阐述,请见compass reference(Chapter 3. Search Engine)

<compass-core-meta-data> 

<meta-data-group id="springside" displayName="SpringSide Book Meta Data">
<description>SpringSide Meta Data</description> <uri>http://compass/springside</uri>

<alias id="book" displayName="Book"> <description>Book alias</description> <uri>http://compass/springside/alias/book</uri> <name>book</name> </alias>

<meta-data id="name" displayName="Name"> <uri>http://compass/springside/name</uri> <name>descn</name> </meta-data>

<meta-data id="descn" displayName="Description"> <uri>http://compass/springside/descn</uri> <name>descn</name> </meta-data>

<meta-data id="author" displayName="Author"> <description>The author of a book</description> <uri>http://compass/springside/author</uri> <name>author</name> </meta-data>

<meta-data id="publisher" displayName="Publisher"> <description>The publisher of a book</description> <uri>http://compass/springside/publisher</uri> <name>publisher</name> </meta-data> </meta-data-group>

</compass-core-meta-data>

4. 与spring,hibernate集成的实现
4.1 hibernate 配置
配置通透的pojo,class所应对的hibernate配置hbm.xml,这里就不在熬述.具体可见springside源码.

4.2 spring配置
hiberante中的sessionFactory,transactionManager 相比大家也是轻车熟路了.这里还是代过(因为不牵扯稿费的问题吗^_^ ).compass已经对对spring集成做了很好的封装,让我们的使用更加简单,我们可以不为compass编写一行代码,就可以做完搜索引擎的检索.下面谈一下compass在spring中的简明配置.

<beans>
<bean id="compass" class="org.compass.spring.LocalCompassBean"> <property name="resourceLocations"> <list> <value>classpath:compass-springside.cmd.xml</value> <value>classpath:compass-springside.cpm.xml</value> </list>
</property> <property name="compassSettings"> <props> <prop key="compass.engine.connection">file://${user.home}/springside/compass</prop> <prop key="compass.transaction.factory">org.compass.spring.transaction.SpringSyncTransactionFactory</prop> </props> </property>
<property name="transactionManager" ref="transactionManager"/> </bean>

<bean id="hibernateGpsDevice" class="org.compass.spring.device.hibernate.dep.SpringHibernate3GpsDevice">
<property name="name"> <value>hibernateDevice</value> </property> <property name="sessionFactory" ref="sessionFactory"/> </bean>

<bean id="compassGps" class="org.compass.gps.impl.SingleCompassGps" init-method="start" destroy-method="stop">
<property name="compass" ref="compass"/> <property name="gpsDevices"> <list> <ref local="hibernateGpsDevice"/> </list> </property> </bean> </beans>

resourceLocations: 装入compass的配置文件 *.cmd.xml,*.cpm.xml
compass.engine.connection: 就是索引做存放的本机文件的路径.搜索引擎也是根据本机文件索引,进行查询.
hibernateGpsDevice: 注入sessionFactory.

The Hibernate Gps Device:用Hibernate 3 事件系统,提高支持Real Time Data Mirroring.经Hiberante的数据改变自动被反射到索引里面.
4.3 web中的配置

<bean id="indexBookController" class="org.compass.spring.web.mvc.CompassIndexController">
<property name="compassGps"><ref bean="compassGps"/></property>
<property name="indexView"><value>/admin/indexBook.jsp</value></property>
<property name="indexResultsView"><value>/admin/indexBook.jsp</value></property>
    </bean>

    <bean id="searchBookController" class="org.compass.spring.web.mvc.CompassSearchController">
<property name="compass"><ref bean="compass"/></property>
<property name="searchView"><value>/home/top.jsp</value></property>
<property name="searchResultsView"><value>/home/searchBook.jsp</value></property>
<property name="pageSize"><value>3</value></property>
    </bean>

调用到indexBookController,完成索引重建,调用到searchBookController,完成搜索.
搜索页面 :

<INPUT type="text" size="20" name="query" class="search" value="">


搜索结果:

<div class="left"><c:if test="${! empty searchResults}">
耗时: <c:out value="${searchResults.searchTime}" />ms
<c:if test="${empty searchResults.hits}">
,没有找到符合条件的图书,请确保已在管理后台建立索引。
</c:if>
<c:forEach var="hit" items="${searchResults.hits}">
<c:choose>
<c:when test="${hit.alias == 'book'}">
<p><a
href="<c:url value="/bookstore.do?action=bookDetail&id=${hit.data.id}"/>">
《<c:out value="${hit.data.name}" />》 </a> <br />
作者:<c:out value="${hit.data.author}" /> &nbsp; 出版社: <c:out
value="${hit.data.publisher}" /></p>
</c:when>
</c:choose>
</c:forEach>
分享到:
评论

相关推荐

    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-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**:...

    mongodb-compass-1.27.1-win32-x64.zip

    - **MongoDBCompass.exe**:这是MongoDB Compass应用程序的主执行文件。 - **Update.exe**:可能是更新程序,用于检查和安装MongoDB Compass的最新版本。 通过使用MongoDB Compass,数据库管理员和开发者可以更有效...

    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

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

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

    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

    mongodb-compass-1.23.0-win32-x64.zip

    5. libGLESv2.dll、libEGL.dll:图形处理库,用于支持Compass中的图形渲染。 6. d3dcompiler_47.dll:Direct3D编译器,用于编译图形着色器,提高图形性能。 7. ffmpeg.dll:FFmpeg库,用于处理多媒体数据,可能在...

    compass-core.jar

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

    前端开源库-compass-mixins

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

    Compass-master.zip

    在这个指南针应用中,关键的是磁力计,它能检测地球磁场的变化,从而判断设备的北向。 2. **SensorManager**: - Android系统提供了`SensorManager`类,用于管理和访问设备上的传感器。开发者需要注册监听器,以便...

    Compass-GPS-ArcGIS在林业生产中的实际应用探讨.pdf

    《Compass-GPS-ArcGIS在林业生产中的实际应用探讨》 本文主要探讨了现代林业生产中一项重要的技术——Compass-GPS-ArcGIS技术的实际应用。这项技术结合了罗盘进行方位测量、全球定位系统(GPS)进行精确定位以及...

    Compass-CI 的 Web 服务器

    在本篇中,我们将深入探讨 Compass-CI 的 Web 服务器部分,包括其核心功能、工作原理以及如何配置和管理。 一、Compass-CI Web 服务器的核心功能 1. **项目管理和配置**:Compass-CI 的 Web 服务器允许用户创建和...

    mongodb-compass-1.23.0-win32-x64.exe

    这个是mongodb-compass的1.23最新版本。花了我好长时间才下载完。各位请给我个赞 这个是mongodb-compass的1.23最新版本。花了我好长时间才下载完。各位请给我个赞 这个是mongodb-compass的1.23最新版本。花了我好长...

    compass-2.2.0.zip

    通过使用Compass 2.2.0,开发者可以在Java应用中轻松集成搜索引擎功能,提升用户体验,同时减少维护成本。在实际项目中,我们可以根据需求选择合适的Compass配置,结合其提供的工具和API,实现高效的全文搜索、数据...

    mongodb管理工具安装包mongodb-compass

    mongodb-compass-1.13.1-win32-x64.exe 作为mongodb管理工具的安装包,对于管理mongodb很方便实用

    mongodb-compass-community-1.12.8-win32-x64.exe

    安装mongodb时会自动联网下载mongodb-compass,但是网速非常慢,有些人甚至等了一晚上都没有结果。可以选择在安装mongodb时先不安装mongodb-compass,事后单独安装。

Global site tag (gtag.js) - Google Analytics