spring集成compass中出现的问题和总结
来源:互联网 发布:网络大电影杀小姐 编辑:程序博客网 时间:2024/05/17 17:43
一、用spring的事务管理来管理compass,使compass使用更加方便
在bean.xml中compass配置如下:(使用的是paoding分词器)
<bean id="compass" class="org.compass.spring.LocalCompassBean">
<property name="classMappings"><!-- 指定搜索实体 -->
<list>
<value>com.zjnjust.bean.product.ProductInfo</value>
<value>com.zjnjust.bean.product.ProductStyle</value>
<value>com.zjnjust.bean.product.ProductType</value>
</list>
</property>
<property name="compassSettings">
<props>
<!--以下语句的作用:将compass默认的分词器设置成 paoding分词器。如果第一次配置是没问题的,但当你重新部署工程,运行就会出错;此时只需要将该语句删除。??why -->
<prop key="compass.engine.analyzer.default.type">net.paoding.analysis.analyzer.PaodingAnalyzer</prop>
<!--设置索引文件存放的路径-->
<prop key="compass.engine.connection">file://d:/index</prop>
<!-- 在内存中建立索引
<prop key="compass.engine.connection">ram://index</prop>
-->
<prop key="compass.engine.highlighter.default.formatter.simple.pre"><![CDATA[<font color='red'>]]></prop>
<prop key="compass.engine.highlighter.default.formatter.simple.post"><![CDATA[</font>]]></prop>
<prop key="compass.transaction.factory">org.compass.spring.transaction.SpringSyncTransactionFactory</prop>
</props>
</property>
<property name="transactionManager" ref="transactionManager" />
</bean>
<!--GPS 自动完成 索引的添加/更新/删除操作-->
<bean id="compassGps" class="org.compass.gps.impl.SingleCompassGps" init-method="start" destroy-method="stop">
<property name="compass" ref="compass" />
<property name="gpsDevices">
<list>
<!-- 设置JPA驱动 -->
<bean class="org.compass.gps.device.jpa.JpaGpsDevice">
<property name="name" value="jpaDevice" />
<property name="entityManagerFactory" ref="entityManagerFactory" />
<property name="injectEntityLifecycleListener" value="true"/>
</bean>
</list>
</property>
</bean>
二、接下来再简单介绍下compass配置的过程
1、搭建compass环境。将compass需要到的jar文件加载到工程中
所需要的jar文件有8个:commons-logging.jar; compass- 2.2.0.jar ; lucene-analyzers.jar; lucene-core.jar; lucen-highlighter.jar; lucene-queries.jar; lucene-snowball.jar ; lucene-spellchecker,jar。
2、设计实体,并且完成实体的映射元数据 (@Searchable)将需要进行查询的实体进行映射注解。下面介绍几种常用的注解:
@Searchable -->作用把该类定义为搜索实体,该实体跟索引的document进行映射
@Searchable(root=false) -->不需要索引但需要存储,该类不是独立的搜索实体,只作为root类的配角,作为root类的一部分;跟@SearchableComponent一起使用。
@SearchableId-->作用定义该属性为搜索实体的标识属性,默认映射到document的id字段
@SearchProperty(name="xxxx") -->将索引字段重命名
@SearchableProperty(boot=2,name="productName")-->boot数字越大级别越高
@SearchableProperty(index=Index.NOT_ANALYZED,store=Store.YES) -->不需要索引,需要存储
@SearchableReference -->复合类型的id设置为索引字段;只能得到该类的ID,无法得到其他属性。
@SearchableComponent-->复合类型的属性设置为索引字段;能得到该类的ID,也能得到其他属性;在该类设置为@Searchable(root=false)作为root的一部分。
3、paoding的安装步骤
1>把安装目录下的paoding-analysis.jar文件拷贝到项目的classpath下
2>把安装目录下的dic整个拷贝到项目的src下
3>从安装目录下classes目录中的paoding-dic-home.properties拷贝到项目的src下.并且在文件中添加如下内容:
paoding.dic.home=classpath:dic
4>如果遇到报错,请检查你工程所在的路径是否有中文或者带空格!
4、接下来就是在spring中配置compass,完成spring和compass之间的集成
将最上面的那段配置信息拷到相应的spring配置文件bean.xml中即可。接下来测试一下集成是否成功。重新部署应用,tomcat没有错误,并查看到索引文件的路径,上面配置的路径是file://d:/index;查看d盘是否多了个文件夹index,若看到该文件夹表示配置成功!
- spring集成compass中出现的问题和总结
- spring和mybatis集成出现的问题
- compass和spring 集成实现实时搜索
- compass和spring 集成实现实时搜索
- 测试spring和hibernate集成的时候出现的问题
- mongodb和spring集成中MongoTemplate的总结是使用方法
- mongodb和spring集成中MongoTemplate的总结是使用方法
- Spring Boot集成JdbcTemplate的问题总结~~
- Compass: 在你的应用中集成搜索功能
- Compass: 在你的应用中集成搜索功能
- memcached总结和与spring的集成
- struts2+spring+hibernate+json+jquery+flexigrid集成和在集成过程中需要注意的问题
- compass 的例子与集成
- spring集成quartz,出现2次重复调用的问题
- UITableView和UICollectionView使用中出现的问题总结
- compass+SSH 的spring配置文件
- spring集成quartz的内存泄漏问题总结
- Spring注入中出现的问题
- 《敏捷开发:高效程序员的45个习惯》 学习摘要 2
- struts1和struts2的标签引入
- Effective C++学习笔记 第一弹 1-4
- struts2配置文件详解
- Effective C++学习笔记 第二弹 5-10
- spring集成compass中出现的问题和总结
- SqlServer创建删除数据库,表,约束
- Effective C++学习笔记 第三弹 11-18
- Linux2.6.34下 USB驱动(U盘\USB鼠标、键盘)
- Effective C++学习笔记 第四弹 18-28
- Direct3d template (camera)
- 程序员你迷茫个鬼啊?你忧伤个毛啊?你寂寞个蛋啊?
- Linux 2.6.34下LCD驱动移植
- Oracle RETURNING INTO 用法示例