例如搜"广东",实现后输出结果如下:<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提供的Gps接口或者自定义查询语句来实现对索引的检索。检索结果可以转换成业务对象,然后传递给视图进行展示。 在实际项目中,可能还需要考虑性能优化,例如使用缓存减少数据库访问,或者对搜索...
它提供了索引和搜索文本的API,可以处理大量数据,支持分词、高亮显示搜索结果等特性。Compass就是在Lucene的基础上,添加了更多面向对象的抽象层,使得开发者能更高效地利用Lucene的强大功能。 3. **对象映射...
4. **分页处理**:为了实现分页,你需要在搜索请求中添加页码和每页显示的记录数。然后,使用Compass的API获取相应范围的搜索结果。同时,根据总结果数计算出总的页数,以便在前端展示分页导航。 5. **展示结果**:...
Compass搜索引擎技术是一种基于Lucene的全文检索框架,它提供了更高级别的API和集成机制,使得在Java应用程序中实现搜索引擎功能变得更加便捷。Compass的主要目标是将全文索引能力无缝地融入到现有的业务应用程序中...
Compass 是基于 Lucene 构建的一个高级搜索引擎框架,它简化了 Lucene 的使用,并且提供了更多的特性,如自动索引、ORM 集成(Object-Relational Mapping)以及对多种持久化技术的支持,如 JPA、Hibernate 和 ...
### Java搜索 Compass 资料知识点 #### 一、Compass 概述 Compass 是一个为 Java 应用程序提供全文检索功能的框架。它能够帮助开发者在 Java 应用程序中轻松实现复杂的搜索需求,并且具有较高的性能。Compass 基于...
标题 "Spring ,JPA,Compass使用注解开发的博客站内搜索" 涉及的是在Java开发环境中,利用Spring框架、Java Persistence API (JPA) 和 Compass搜索引擎来实现一个博客系统的站内搜索功能。这是一项关键的技术,因为...
Compass不仅支持对关系数据库中的数据进行索引,还能与ORM框架如Hibernate、JPA等无缝集成,使得索引和搜索的数据可以与业务数据保持一致。 **二、Compass的核心特性** 1. **ORM集成**:Compass能够自动跟踪和更新...
标题中的"S2SH+compass"指的是一个基于Struts2(S),Spring(S)和Hibernate(H)这三种开源框架的Java Web应用,再加上Compass搜索引擎来实现站内全文检索的功能。这种组合常用于构建复杂的企业级应用,因为它提供...
【compass完整可用项目】是一个基于特定技术栈的软件开发项目,该项目的核心是Compass库,一个与Lucene紧密集成的全文搜索引擎工具。Compass提供了一种简单的方式来在Java应用程序中集成全文搜索功能,使得开发者...
Compass全文搜索是一个基于Apache Lucene的高性能、易用的全文搜索引擎工具。Lucene是Java开发的开源库,它提供了文本分析、索引和搜索的基本功能。而Compass则在Lucene的基础上进行了封装,使得开发者可以更方便地...
7. **地理空间搜索**:Compass还支持地理空间搜索,可以对地理位置数据进行有效的检索。 **入门指南** 对于初学者来说,理解Compass的基本概念和用法是关键。首先,你需要配置Compass,指定数据源和索引位置。接着...
在结合Lucene和Compass时,Ajax可以用于实现动态加载搜索结果,无刷新更新,或者在用户输入时实时显示搜索建议等功能。 将这三者结合,我们可以构建一个高效、互动的搜索系统。例如,使用Compass将数据库中的数据...
3. **实现服务层**:创建服务层接口及其实现类,利用Spring的注入机制注入Compass的bean,实现对索引的操作。 #### 五、实际应用案例 假设我们有一个项目管理系统,需要实现项目的快速搜索功能。我们可以采用上述...
至于“工具”标签,Compass提供了丰富的工具类和API,包括查询构造器、排序和高亮显示等,帮助开发者轻松实现搜索功能。例如,`CompassSession`和`CompassTransaction`接口提供了对索引的CRUD操作,而`CompassQuery`...
【Compass原理深入学习笔记】 Compass是一款基于Apache Lucene的全文搜索引擎框架,它为...通过Compass,可以实现类似Hibernate对数据库的操作体验,但针对搜索引擎进行数据管理,提高了大规模文本数据的检索效率。