例如搜"广东",实现后输出结果如下:<font color="red"><b>广</b></font><font color="red"><b>东</b></font>科学中心新老主任顺利交接.
实现步骤:
1、applicationContext-compass.xml中添加高亮配置
//...
<bean id="compass" class="org.compass.spring.LocalCompassBean">
<property name="resourceDirectoryLocations">
<list>
<value>classpath:cn/changtusoft</value>
</list>
</property>
<property name="connection">
<value>/lucene/indexes</value>
</property>
<property name="classMappings">
<list>
<value>cn.changtusoft.publicplatform.entity.synthesis.Trends</value>
</list>
</property>
<property name="compassConfiguration"
ref="annotationConfiguration" />
<property name="compassSettings">
<props>
<prop key="compass.transaction.factory">
org.compass.spring.transaction.SpringSyncTransactionFactory
</prop>
<prop key="compass.engine.analyzer.MMAnalyzer.CustomAnalyzer">net.paoding.analysis.analyzer.PaodingAnalyzer </prop>
<!--高亮显示配置start-->
<prop key="compass.engine.highlighter.default.formatter.simple.pre">
<![CDATA[<font color="red"><b>]]>
</prop>
<prop key="compass.engine.highlighter.default.formatter.simple.post">
<![CDATA[</b></font>]]>
</prop>
<!--高亮显示配置end-->
</props>
</property>
<property name="transactionManager" ref="transactionManager" />
</bean>
//...
2、查询关键代码如下:
//...
@Override
public PagerModel searchByQueryString(String trends_title) {
List trendsList = new ArrayList();
Compass compass = compassTemplate.getCompass();
CompassSession session = compass.openSession();
// 从第几条记录开始
int offset = SystemContext.getOffset();
// 每页显示几条数据
int pageSize = SystemContext.getPagesize();
CompassTransaction tx = session.beginLocalTransaction();
CompassQuery compassQuery = session.queryBuilder().queryString("trends_title:"+trends_title).toQuery();
CompassHits hits = compassQuery.hits();
// 分页储存数据
for (int i = offset; i < offset + pageSize && i < hits.length(); i++) {
Trends p = (Trends)hits.data(i);
String trends_title_highlighter = hits.highlighter(i).fragment("trends_title");
p.setTrends_title(trends_title_highlighter);
trendsList.add(p);
}
tx.commit();
PagerModel pm = new PagerModel();
pm.setDatas(trendsList);
pm.setTotal(hits.length());
return pm;
}
//...
分享到:
相关推荐
初学compass,参照网上代码写的。有什么不对的地方请大家指教。
ssh+compass实现站内搜索分页.rar
compass搜索引擎技术 eclipse mysql 实现像google的搜索功能
使用compass+lucene实现简单的全文检索功能
使用compass+lucene实现简单的全文检索功能
compass对象搜索引擎
做自己的搜索引擎-搜索引擎精解案例教程lucenen compass 搜索引擎框架
compass文档资料
基于lucene 的compass 全文搜索实例,可运行,对新手入门很有帮助
基于Lucene的搜索引擎框架Compass教程
compass_使用详解.pdf compass_教程 compass_试用案例。
Compass是第一个实现java搜索引擎的开源框架,它是基于Lucene之上的,提供更简单的搜索引擎API,事务支持,对象到搜索引擎映射(Annotations
compass教程.pdf
compass-2.2.0.zip,Compass是第一个实现java搜索引擎的开源框架,它是基于Lucene之上的,提供更简单的搜索引擎API,事务支持,对象到搜索引擎映射
Compass_入门指南 Compass_入门文档
Compass原理深入学习笔记,对于compass知识的一个梳理,希望对大家有用
Compass概念: 1:Compass相当于hb的SessionFactory 2:CompassSession相当于hb的Session 3:CompassTransaction相当于hb的transaction。 <br>Compass也是采用CompassConfiguration(装载配置和映射文件...
compass annotation关联关系
COMPASS介绍COMPASS介绍COMPASS介绍COMPASS介绍COMPASS介绍
Sass和Compass 实战