`
周英能
  • 浏览: 187976 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

持久层开发,基于lucene,hibernate-search

 
阅读更多

1、pojo类编写

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import org.hibernate.search.annotations.Analyzer;
import org.hibernate.search.annotations.DocumentId;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.Index;
import org.hibernate.search.annotations.Indexed;
import org.hibernate.search.annotations.Store;
import org.wltea.analyzer.lucene.IKAnalyzer;

@Entity
@Table(name="student")
@Indexed(index="student")
public class Student extends DominObject {

	/**
	 * 
	 */
	private static final long serialVersionUID = 9090499971596826674L;

	public Student() {
	}

	public Student(String name, int age) {
		this.name = name;
		this.age = age;
	}
	/**
	 * 业务主键ID,自增,增量1
	 */
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Id
	@DocumentId
	private Integer id;
	
	/**
	 * 学生姓名
	 */
	@Column(length = 10, name = "student_name", nullable = false)
	@Field(name = "content", store = Store.YES, index = Index.TOKENIZED, analyzer = @Analyzer(impl = IKAnalyzer.class))  
	private String name = "";
	
	/**
	 * 学生年龄
	 */
	@Column(length = 2, name = "student_age", nullable = false)
	private Integer age = 0;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}
}

 2、dao接口

import java.util.List;

import com.zyn.ssh.pojo.Student;


public interface StudentDao extends BaseEntityDao<Student, Integer>{
	public List<Student> findStudentByLike(String name);
}

 3、dao接口实现

import java.io.Serializable;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.search.FullTextSession;
import org.hibernate.search.Search;
import org.springframework.stereotype.Repository;
import org.wltea.analyzer.lucene.IKQueryParser;

import com.zyn.ssh.dao.StudentDao;
import com.zyn.ssh.pojo.Student;

@Repository("studentDao")
public class StudentDaoImpl extends BaseEntityDaoImpl<Student, Integer>
		implements StudentDao {
	//将数据保存并建立索引
	public Serializable save(Student entity) {
		FullTextSession fullTextSession = Search
				.getFullTextSession(getSession());
		return fullTextSession.save(entity);
	}

	@SuppressWarnings("unchecked")
	//通过名字模糊查询学生
	public List<Student> findStudentByLike(String name) {
		try {
			Query query = Search.getFullTextSession(getSession())
					.createFullTextQuery(IKQueryParser.parse("content", name),
							Student.class);
			List<Student> result = query.list();
			return result;

		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}
}
 
分享到:
评论

相关推荐

    hibernate-search-3.2.0.Final-dist.tar

    Hibernate Search是Hibernate ORM框架的一个扩展,它将强大的全文搜索引擎Lucene集成到Java持久化层,使得开发者可以方便地在数据库中进行全文搜索。本文将详细探讨`hibernate-search-3.2.0.Final-dist.tar`这一版本...

    hibernate-search-4.1.1.Final-dist.zip

    Hibernate Search是Java世界中Hibernate ORM框架的一个强大扩展,它将全文搜索能力引入到持久化层,使得开发者能够轻松地在数据库中的数据上执行复杂的全文检索。本文将详细探讨Hibernate Search 4.1.1.Final版本的...

    hibernate-search-5.3.0.Final-dist

    SSH(Spring、Struts、Hibernate)作为经典的Java Web开发框架,Spring负责依赖注入和事务管理,Struts处理MVC模式,而Hibernate则作为持久层解决方案。将Hibernate Search整合进SSH,可以极大地提升用户在应用中的...

    hibernate search源码

    Hibernate Search是Hibernate ORM框架的一个强大扩展,它将全文搜索引擎的功能集成到了Java持久层,使得开发者可以方便地在数据库中进行复杂的文本搜索。本篇文章将深入探讨Hibernate Search的源码,帮助你理解其...

    hibernate-search-4.2.0.CR1-dist.zip

    Hibernate Search是基于Apache Lucene库构建的,允许开发者在Hibernate实体上执行复杂的全文检索和排序操作。通过集成到ORM层,它使得在数据库中的对象可以直接参与全文搜索,大大简化了企业级应用的搜索功能开发。 ...

    Hibernate-Search

    Hibernate Search基于Apache Lucene库,允许开发者在持久化对象上执行复杂的全文本查询,同时也支持排序和分页。它无缝地集成了ORM层和搜索层,使得在数据库和搜索之间进行切换变得轻松便捷。 二、主要特性 1. 全文...

    hibernate search reference card

    总之,Hibernate Search为Hibernate持久化层带来了强大的全文搜索能力,结合Apache Lucene的强大功能,极大地丰富了数据检索和分析的场景。通过深入理解其核心概念和最佳实践,开发者可以构建出高度可扩展且响应迅速...

    hibernate相关插件全集

    此外,它还可以生成基于Hibernate的DAO(数据访问对象)层,进一步提高了开发效率。 接下来是hibernate-annotations-3.3.0.GA,这是Hibernate 3.x系列的一个版本,包含了Hibernate的注解支持。在Java中,注解是一种...

    hibernate3.6所用包

    - `hibernate-search-orm.jar`:提供了全文搜索功能,基于Lucene集成。 - `hibernate-annotations.jar`和`hibernate-validator.jar`:前者提供了ORM的注解支持,后者实现了JSR 303/349 Bean Validation规范,用于...

    hibernate Search in action

    《Hibernate Search in Action》这本书深入探讨了Hibernate Search这一强大的全文搜索引擎集成框架,它将全文搜索功能无缝地融入到Java持久层框架Hibernate之中。通过利用Lucene库的强大功能,Hibernate Search为...

    基于Spring的Hibernate Search全文检索功能示例

    在Spring中,我们可以轻松地集成其他库,如Hibernate,以实现持久层操作。 Hibernate是Java领域的一款对象关系映射(ORM)框架,它简化了数据库操作,使开发者可以使用面向对象的方式来处理数据库事务。而Hibernate...

    基于hibernate search的全文搜索引擎实现完整代码和配置文件,支持中英文

    Hibernate Search是Hibernate ORM的一个扩展,它允许开发者在Java应用中实现全文搜索功能,无缝集成到持久化层。该技术的核心是Lucene,一个高性能、全文本搜索库,提供了丰富的搜索功能和灵活性。 首先,让我们...

    基于Jakarta Lucene的LIUS索引框架---下载不扣分,回帖加1分,欢迎下载,童叟无欺

    针对JavaBeans的索引特别有用当我们要对数据库进行索引或刚好用户使用持久层ORM技术如:Hibernate,JDO,Torque,TopLink进行开发时。 This project aims to integrate lius into compass(that is based on lucene). ...

    hibernate4.x jar

    在给定的文件中,`hibernate-search-engine-4.2.0.Beta2.jar`和`hibernate-search-orm-4.2.0.Beta2.jar`就是Hibernate Search的相关组件,它们提供了对Lucene的集成,使得我们能够在Hibernate ORM的基础上实现高效、...

    hibernate的jar包

    这个“hibernate的jar包”很可能包含了Hibernate框架的核心库和其他相关组件,比如Hibernate Search,这从压缩包子文件的文件名称“hibernate-search-5.5.2.Final”可以推断出来。 Hibernate的核心功能包括: 1. *...

    hibernate框架基本包大全

    5. **查询语言**:`hibernate-search-orm.jar`可能包含了Hibernate的全文搜索功能,它利用了Lucene库来提供对数据库中的文本进行索引和搜索的能力。 6. **依赖库**:其他的JAR文件可能是Hibernate依赖的第三方库,...

    hibernate5.5.4

    Hibernate Search是Hibernate的一个扩展,它为Hibernate实体提供了全文搜索功能,基于Lucene库实现。这允许开发者对数据库中的文本进行复杂、高效的全文检索。 1. **全文搜索**: Hibernate Search允许开发者在Java...

    hibernate全 jar包

    在Java EE开发中,SSH(Struts、Spring、Hibernate)是经典的三层架构解决方案,其中Hibernate承担了持久层的角色。 标题中的“hibernate全jar包”指的是包含了Hibernate框架运行所需的所有依赖库的集合,这通常...

    SSH整合hibernate完整jar包

    在这个整合中,Hibernate作为持久层框架,负责对象关系映射(ORM);Struts作为表现层框架,处理HTTP请求和视图展示;Spring作为应用层框架,提供了依赖注入(DI)和面向切面编程(AOP),并协调其他组件的交互。 ...

    基于Struts Spring Hibernate的Blog系统

    在Blog系统中,Hibernate作为数据持久化层,负责数据库的CRUD(创建、读取、更新、删除)操作。通过Hibernate,开发者可以避免编写大量的SQL语句,提高开发效率,同时保持代码的可维护性和可扩展性。 四、Blog系统...

Global site tag (gtag.js) - Google Analytics