spring集成compass中出现的问题和总结
一、用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,若看到该文件夹表示配置成功!
转载于:https://www.cnblogs.com/masterlyl/archive/2011/12/26/compass.html
spring集成compass中出现的问题和总结相关推荐
- windows api中文文档_Web服务开发:Spring集成Swagger,3步自动生成API文档
目录: 1,Spring Boot集成Swagger 2,Swagger接口文档页面 3,常见问题和解决方法 在Sping开发REST接口服务时,API文档是不可缺少的一个重要部分.Swagger框架 ...
- Struts2与Spring集成中的自动装配策略
http://www.blogjava.net/jeffma/archive/2010/11/30/339414.html 自动装配即bean之间的依赖关系无需手动配置. 1. 与自动装配有关的 ...
- 将Spring集成到旧版应用程序中
所有Spring开发人员喜欢做的事情之一就是将Spring塞入他们正在工作的任何应用程序中–这是我生活中的罪恶感之一:您看到一些代码,认为它是垃圾,因为它包含几个众所周知的反模式,然后想想如果这个应用 ...
- Spring Boot项目中集成Elasticsearch,并实现高效的搜索功能
Spring Boot项目中集成Elasticsearch 前言 环境准备 引入依赖 配置Elasticsearch连接信息 定义实体类 定义Elasticsearch操作接口 实现搜索功能 总结 前 ...
- SCA与spring集成(在spring中开发SOA)
客户端调用与Tuscany SCA相同 服务端的配置如下: sca.composite <?xml version="1.0" encoding="UTF-8&qu ...
- Spring集成Redis方案(spring-data-redis)(基于Jedis的单机模式)(待实践)
说明:请注意Spring Data Redis的版本以及Spring的版本!最新版本的Spring Data Redis已经去除Jedis的依赖包,需要自行引入,这个是个坑点.并且会与一些低版本的Sp ...
- 从零开始学 Java - Spring 集成 Memcached 缓存配置(二)
Memcached 客户端选择 上一篇文章 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)中我们讲到这篇要谈客户端的选择,在 Java 中一般常用的有三个: Memc ...
- Spring集成线程池
自己在程序中手动New很容易造成线程滥用,创建线程也是比较消耗资源的操作,所以建议如果有此需求,将线程池统一交给Spring框架进行管理. 如下: <!--Spring 集成线程池,不允许自己开 ...
- JBPM4.4_jBPM4.4应用(与Spring集成自行控制事务等)
1. jBPM4.4应用 1.1. 与Spring集成(jBPM4.4 Developers Guide, Chapter 17. Spring Integration) 1.1.1. 在jbpm.c ...
最新文章
- 困惑度 (perplexity)
- Content Compression Resistance和Content Hugging
- 【OS】经典调度算法
- HP P2000 RAID-5两块盘离线的数据恢复报告
- 【深度学习】mask_rcnn训练自己的数据集以及模型使用(实践结合GitHub项目)
- 清华大学-曾鸣-《ARM微控制器与嵌入式系统》I2C总线(二)
- linux5.5 里dns,linux red hat 5.5 dns 问题求解
- 更新数据时出错——所有记录中均未找到搜索关键字
- 吐血整理,2021年最新【阿里、头条、美团】【软件测试】面试题(持续更新!)
- Word转换成pdf之pdf虚拟打印机如何使用操作教程
- python快速搭建服务器方法
- linux解压缩包命令
- ViewPager example -实现左右两个屏幕的切换
- c语言fflush,c语言中fflush(stdin)作用(转)
- mysql物理删除索引_mysql创建索引,mysql索引优化,mysql索引创建删除
- 【SGD深入理解】vanilia SGDmomentum SGD
- 初学SQL 注入之常见的几种注入类型
- 朴素贝叶斯模型简单理解
- OpenFaaS实战之八:自制模板(maven+jdk8),美团java面试算法题
- 71页大数据治理运营整体解决方案(附下载)
热门文章
- span标签的鼠标滑入提示_彻底搞懂拖拽——基于鼠标事件的拖拽以及基于HTML5 API的拖拽...
- 调整oracle scn,在Oracle中增进SCN及案例介绍
- delete select语句_MySQL InnoDB锁介绍及不同SQL语句分别加什么样的锁
- android 友盟推送获取不到devicetoken,使用友盟消息推送中遇到的哪些问题--索引(开发者必读)...
- linux 监控命令iostat,Linux性能监控分析命令(三)—iostat命令介绍
- php 反射 调用私有方法,PHP通过反射方法调用执行类中的私有方法
- opengl 实时波形显示_OpenGL1------OpenGL概述
- matlab levy,Levy Flight 模型及Matlab实现
- 2 如何设置窗口title_如何正确的知晓生僻字发音?无需字典查询,2步手机设置轻松搞定...
- oracle数据库通过SQL profile 绑定SQL最优执行计划(个人实践)