`
java_mike
  • 浏览: 85295 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Compass对搜索关键字实现高亮显示

阅读更多
     例如搜"广东",实现后输出结果如下:<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;
	}

//...


0
0
分享到:
评论

相关推荐

    struts2+spring2.5+hibernate3.26+compass2.1搜索引擎简单实现(无jar包)

    你可以使用Compass提供的Gps接口或者自定义查询语句来实现对索引的检索。检索结果可以转换成业务对象,然后传递给视图进行展示。 在实际项目中,可能还需要考虑性能优化,例如使用缓存减少数据库访问,或者对搜索...

    compass对象搜索引擎

    它提供了索引和搜索文本的API,可以处理大量数据,支持分词、高亮显示搜索结果等特性。Compass就是在Lucene的基础上,添加了更多面向对象的抽象层,使得开发者能更高效地利用Lucene的强大功能。 3. **对象映射...

    ssh+compass实现站内搜索分页.rar

    4. **分页处理**:为了实现分页,你需要在搜索请求中添加页码和每页显示的记录数。然后,使用Compass的API获取相应范围的搜索结果。同时,根据总结果数计算出总的页数,以便在前端展示分页导航。 5. **展示结果**:...

    compass搜索引擎技术

    Compass搜索引擎技术是一种基于Lucene的全文检索框架,它提供了更高级别的API和集成机制,使得在Java应用程序中实现搜索引擎功能变得更加便捷。Compass的主要目标是将全文索引能力无缝地融入到现有的业务应用程序中...

    使用compass+lucene实现简单的全文检索功能

    Compass 是基于 Lucene 构建的一个高级搜索引擎框架,它简化了 Lucene 的使用,并且提供了更多的特性,如自动索引、ORM 集成(Object-Relational Mapping)以及对多种持久化技术的支持,如 JPA、Hibernate 和 ...

    java搜索 compass资料

    ### Java搜索 Compass 资料知识点 #### 一、Compass 概述 Compass 是一个为 Java 应用程序提供全文检索功能的框架。它能够帮助开发者在 Java 应用程序中轻松实现复杂的搜索需求,并且具有较高的性能。Compass 基于...

    Spring ,JPA,Compass使用注解开发的博客站内搜索

    标题 "Spring ,JPA,Compass使用注解开发的博客站内搜索" 涉及的是在Java开发环境中,利用Spring框架、Java Persistence API (JPA) 和 Compass搜索引擎来实现一个博客系统的站内搜索功能。这是一项关键的技术,因为...

    基于Lucene的搜索引擎框架Compass教程

    Compass不仅支持对关系数据库中的数据进行索引,还能与ORM框架如Hibernate、JPA等无缝集成,使得索引和搜索的数据可以与业务数据保持一致。 **二、Compass的核心特性** 1. **ORM集成**:Compass能够自动跟踪和更新...

    S2SH+compass (实现站内全文检索)

    标题中的"S2SH+compass"指的是一个基于Struts2(S),Spring(S)和Hibernate(H)这三种开源框架的Java Web应用,再加上Compass搜索引擎来实现站内全文检索的功能。这种组合常用于构建复杂的企业级应用,因为它提供...

    compass完整可用项目

    【compass完整可用项目】是一个基于特定技术栈的软件开发项目,该项目的核心是Compass库,一个与Lucene紧密集成的全文搜索引擎工具。Compass提供了一种简单的方式来在Java应用程序中集成全文搜索功能,使得开发者...

    compass 全文搜索

    Compass全文搜索是一个基于Apache Lucene的高性能、易用的全文搜索引擎工具。Lucene是Java开发的开源库,它提供了文本分析、索引和搜索的基本功能。而Compass则在Lucene的基础上进行了封装,使得开发者可以更方便地...

    Compass 的java代码

    7. **地理空间搜索**:Compass还支持地理空间搜索,可以对地理位置数据进行有效的检索。 **入门指南** 对于初学者来说,理解Compass的基本概念和用法是关键。首先,你需要配置Compass,指定数据源和索引位置。接着...

    Lucene+compass学习资料

    在结合Lucene和Compass时,Ajax可以用于实现动态加载搜索结果,无刷新更新,或者在用户输入时实时显示搜索建议等功能。 将这三者结合,我们可以构建一个高效、互动的搜索系统。例如,使用Compass将数据库中的数据...

    基于Compass2.2与Spring 结合建立索引的实例

    3. **实现服务层**:创建服务层接口及其实现类,利用Spring的注入机制注入Compass的bean,实现对索引的操作。 #### 五、实际应用案例 假设我们有一个项目管理系统,需要实现项目的快速搜索功能。我们可以采用上述...

    Compass+ lucene 通用代码(脱离数据库)

    至于“工具”标签,Compass提供了丰富的工具类和API,包括查询构造器、排序和高亮显示等,帮助开发者轻松实现搜索功能。例如,`CompassSession`和`CompassTransaction`接口提供了对索引的CRUD操作,而`CompassQuery`...

    Compass原理深入学习笔记

    【Compass原理深入学习笔记】 Compass是一款基于Apache Lucene的全文搜索引擎框架,它为...通过Compass,可以实现类似Hibernate对数据库的操作体验,但针对搜索引擎进行数据管理,提高了大规模文本数据的检索效率。

Global site tag (gtag.js) - Google Analytics