`
aa00aa00
  • 浏览: 331505 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
文章分类
社区版块
存档分类
最新评论

JAVA 全文搜索 struts2+spring+hibernte+compass整合记录

阅读更多
今天学习了全文搜索引擎compass,并且已经整合到S2SH中,将整合的过程记录一下,方便以后的查找:
1.建立搜索页面
<s:form action="search.action" method="post">
<s:textfield name="queryString" label="搜索产品"/>
<s:submit></s:submit>
</s:form>

2.建立相应的Action类:
代码片段:
/**
* 搜索
*
* @return
*/
public String search() {
List results = productManager.searchProducts(queryString);
System.out.println(results.size());
// 将搜索的结果放入ServletActionContext中,相当于struts1.x中的request对象
ServletActionContext.getRequest()
.setAttribute("searchresults", results);
return SUCCESS;
}

3.建立相应的业务接口
/**
*  商品业务接口
*/
package com.v512.example.service;

import java.util.List;

import com.v512.example.model.Product;

public interface ProductManager {
/**
* 增加商品
* @param p
*/
public void insertProduct(Product p);

/**
* 按照ID检索记录
* @param id
* @return
*/
public Product findProdcut(String id);

/**
* 按照商品名称检索记录
* @param queryString
* @return
*/
public List searchProducts(String queryString);

}

4.建立业务类接口的实现类:ProductManagerImpl
/**
* compass搜索 高亮显示
*/
public List searchProducts(String queryString) {
Compass compass = compassTemplate.getCompass();
CompassSession session = compass.openSession();
List list = new ArrayList();
CompassQueryBuilder queryBuilder = session.queryBuilder();
CompassBooleanQueryBuilder boolQuery = queryBuilder.bool();
boolQuery.addMust(queryBuilder.queryString(
"name:" + "*" + queryString + "*").toQuery());
// 匹配属性
// boolQuery.addShould(queryBuilder.queryString("name:" + queryString)
// .toQuery());
CompassHits hits = boolQuery.toQuery().hits();
for (int i = 0; i < hits.length(); i++) {
Product hit = (Product) hits.data(i);
String h = hits.highlighter(i).fragment("name");
if (h != null) {
// 设置值
hit.setName(h);
}
list.add(hit);
}
// 返回结果
return list;
}
在业务类接口中,实例化Compass

5.建立CompassIndexBuilder实现InitializingBean
作用:在启动服务器的时候,实现了spring的InitializingBean接口,让服务器启动,bean初始化的时候去建立索引

6.在web.xml文件中进行配置

7.建立applicationContext.xml和applicationContext-compass.xml
配置文件.

8.启动服务器,查询搜索结果.


最后将工程,上传上来,lib包文件太大,大家可以自己去下载!!
分享到:
评论

相关推荐

    ssh框架的电信计费系统 struts2+spring+hibernte

    ssh框架的电信计费系统 struts2+spring+hiberntessh框架的电信计费系统 struts2+spring+hiberntessh框架的电信计费系统 struts2+spring+hiberntessh框架的电信计费系统 struts2+spring+hibernte

    struts1.0+spring3.0+hibernte3.2

    Struts1.0、Spring3.0和Hibernate3.2是经典的Java企业级开发框架组合,它们各自在应用程序的不同层次上发挥着重要作用。Struts1.0是MVC(Model-View-Controller)架构的一个实现,Spring3.0是全面的轻量级应用框架,...

    Struts2+Spring+Hibernate整合

    struts+spring+hibernte整合文档,文档中有图文解说,一步一步地教你怎么进行整合。好比如需要那些jar包,spring配置文件怎么配置,struts配置文件怎么配,web.xml里应该怎么配等。

    struts2+hibernte+spring权限管理.rar

    Struts2、Hibernate和Spring是Java开发中三大主流框架,它们的集成应用广泛用于构建复杂的Web应用程序,尤其是权限管理系统。这个“struts2+hibernte+spring权限管理.rar”压缩包显然包含了使用这三个框架搭建的权限...

    struts+hibernte+spring+jbpm 智能工作流系统

    Struts、Hibernate、Spring 和 jBPM 是四个在IT行业中广泛应用的开源框架和技术,它们共同构建了一个智能工作流系统。这个系统集成了多种技术,旨在提供高效、灵活且可扩展的工作流程管理解决方案。 首先,Struts ...

    开发基于StrutsSpringHibernateAjax的网上信息发布平台上机贯穿案例Struts+Spring+Hibernte+Ajax(和课件不同)

    开发基于StrutsSpringHibernateAjax的网上信息发布平台上机贯穿案例Struts+Spring+Hibernte+Ajax(和课件不同) 附带T-SQL语句写的数据库

    Spring +Struts+Hibernte课件三合一

    【Spring + Struts + Hibernate 课件三合一】是一门结合了Java开发中三大主流开源框架的课程,旨在帮助学员熟练掌握使用Struts、Hibernate和Spring构建多层Web应用程序的技术。这三大框架分别承担着不同的职责,共同...

    spring+springMVC+hibernte+shiro框架(非maven)

    spring+springMVC+hibernte+shiro框架(非maven) 空框架,没什么东西,hibernate entities自己改一下就能跑起来 ,也可以用hibernate 生成数据库 ,只做了些登陆验证 ,授权写起来太麻烦。 有点垃圾,请见谅哈!

    maven+hibernate+spring+springmvc

    在IT领域,"maven+hibernate+spring+springmvc"是一个常见的技术栈,用于构建企业级的Java Web应用程序。这个技术组合涵盖了项目管理、持久层框架、应用上下文和依赖注入,以及Web MVC框架等多个核心部分。下面将...

    spring struts hibernte api

    在Java Web开发领域,Spring、Struts和Hibernate是三大主流框架,它们各自负责不同的职责,共同构建出高效、灵活的企业级应用。本资料集包含了这三大框架的API文档,以CHM格式提供,便于开发者离线查阅和学习。 1. ...

    ssh2(事务,AOP,IoC即DI)+EhCache+oscache+proxool+MySQL+SiteMesh+Gzip例子

    jQuery+json+struts2+spring3(事务,AOP,IoC即DI)+hibernte3+EhCache+oscache+proxool+MySQL+SiteMesh+Gzip lj例子

    news.rar_spring 新闻_spring新闻_struts spring

    在描述中,"自己写的新闻发布模块,struts,hibernte,spring数据库是mysql"进一步证实了这个项目的核心功能是一个新闻发布系统,它利用Struts处理用户请求,通过Hibernate操作MySQL数据库来存储和检索新闻数据。...

    Agile Java Development with Spring, Hibernte and Eclipse

    ### 敏捷Java开发:Spring、Hibernate与Eclipse的关键知识点 #### 一、Spring框架 **Spring框架**是Java平台上最流行的开源应用框架之一,它为简化企业级应用程序的复杂性提供了全面的基础支持。Spring的核心功能...

    Spring+Jersey+Hibernate+MySQL+HTML实现用户信息CRUD案例源码

    1. **Spring框架**:Spring是Java企业级应用开发的核心框架,它提供了依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)等核心特性。在这个项目中,Spring用于管理Bean的...

    webwork spring hibernate整合实例源代码

    2. 整合WebWork与Spring:通过Spring的Struts2插件(WebWork2已被Struts2合并)将Spring的IoC容器集成到WebWork中,使得Action类可以在Spring容器中被管理。 3. 配置Hibernate:创建Hibernate的配置文件(如`...

    网上购物系统(java,struts,hihernate)

    在这个特定的案例中,系统是用Java语言开发的,并且采用了经典的MVC(Model-View-Controller)设计模式,通过Struts框架来实现控制层,Hibernate作为持久层框架处理数据库交互,而JSP则用于创建视图层。此外,还使用...

    hibernte缓存

    SSH 是 Spring、Struts 和 Hibernate 的组合,是一种常见的 Java Web 开发框架。在 SSH 框架中,Hibernate 作为数据层的 ORM 工具,它的缓存机制对于整个应用的性能优化至关重要。 **五、SSH-补充** 在提供的压缩包...

Global site tag (gtag.js) - Google Analytics