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

Hibernate Search配置及简单应用

阅读更多

 

  Hibernate Search是一款集成Apache Lucene的搜索jar包。

 

  一。配置

 

<dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>${hibernate.version}</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>${hibernate.version}</version>
        </dependency>

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-search</artifactId>
            <version>${hibernate.version}</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-search-analyzers</artifactId>
            <version>${hibernate.version}</version>
        </dependency>

 

  其中的hibernate.version为4.0.0.CR1。如果hibernate-core的版本过低会导致hibernate-search无法应用,所以在使用之前请谨慎考虑。

 

  在hibernate.cfg.xml中添加如下设置

 

 

<property name="hibernate.search.default.directory_provider">filesystem</property>

        <property name="hibernate.search.default.indexBase">/lucene/indexes</property>

 

  第一个属性表示将使用文件系统作为为默认的目录提供者,第二个属性表示存储目录。

 

  如果想对某个实体进行索引,那么需要在该实体上加上@Indexed注释,对于该实体的标识符上加上@DocumentId注释,并且在你想要进行索引的属性上加上@Field(index = Index.YES, analyze = Analyze.YES, store = Store.YES)注释,其中注释中的设置根据具体需求而定,以后会讲解到这些属性的意义和作用。

 

  二。创建索引

 

  这里以Person为例,对其中的name属性创建索引,创建索引的代码如下:

 

 

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
        Session session = sessionFactory.openSession();
        FullTextSession fullTextSession = Search.getFullTextSession(session);
        fullTextSession.createIndexer(Person.class).startAndWait();

 

  三。搜索

 

 

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
        Session session = sessionFactory.openSession();
        FullTextSession fullTextSession = Search.getFullTextSession(session);
        Transaction transaction = fullTextSession.beginTransaction();
        SearchFactory searchFactory = fullTextSession.getSearchFactory();
        QueryBuilder queryBuilder = searchFactory.buildQueryBuilder().forEntity(Person.class).get();
        Query query = queryBuilder.keyword().onField("name").matching("Zhong").createQuery();
        FullTextQuery fullTextQuery = fullTextSession.createFullTextQuery(query, Person.class);
        List<Person> list = fullTextQuery.list();
        transaction.commit();
        session.close();

 

  先将该项目上传以供参考。

1
0
分享到:
评论

相关推荐

    Hibernate搜索框架HibernateSearch.zip

    Hibernate Search主要有以下功能特点:1,功能强大,配置简单 - 配置只需要修改persistence.xml(JPA),hibernate.cfg.xml(Hibernate)2,支持Hibernate,以及EJB3 JPA标准应用3,集成全文搜索引擎Lucene - Lucene...

    faceted-search:具有Hibernate搜索功能的基本搜索引擎

    maven “mvn clean package” 打包并将生成的 jar 包含在类路径中或用作独立应用程序,使用 stantalone 配置文件“mvn clean package -Pstandalone”打包,在这种情况下,运行jar "java -jar faceted-search-jar-...

    图书馆之春:您可以在其中借书的图书馆Web应用程序。 这是Spring MVC和Hibernate项目

    数据库和配置MySQL 飞路(用于数据迁移) GradleTomcat吉特Google Book API 后端技术JavaSpring MVC,Spring AOP,Spring Security Hibernate ORM,Hibernate Validator,Hibenrate Search(Lucene) 翻新,JSON ...

    todo:在一个简单的Spring Boot Todo List应用程序中记录每个请求的查询计数

    在一个简单的Spring Boot Todo List应用程序中记录每个请求的查询计数 这是最小的Spring Boot Todo List应用程序。 我已创建此应用程序作为测试平台,以了解如何记录视图(页面)渲染期间Hibernate执行SQL查询数量。...

    JBoss Seam 工作原理、seam和hibernate的范例、RESTFul的seam、seam-gen起步、seam组件、配置组件、jsf,jboss、标签、PDF、注解等等

    1.6. 一个完整的Seam 应用程序:宾馆预订范例............................................................................................................ 45 1.6.1. 介绍......................................

    应用级产品开发平台APDPlat.zip

    4)、ORM使用JPA,默认实现是Hibernate。 5)、内置搜索(OSEM)使用Compass。 6)、认证授权使用SpringSecurity。 7)、代码生成使用Freemarker。 8)、日志组件使用SLF4J和Logback。 9)、调度组件使用Quartz。 10...

    SpringBoot企业级博客系统(未加密+源码)

    从项目配置,应用的编写,再到测试用例,最后运行项目。方面学员了解整个编码的流程。 第4章 开发环境的搭建 为了让实战过程更顺利,避免不要的问题,这里会先将课程所要求的环境进行一个讲解,并要求学员最好跟随...

    Spring Boot带前后端 渐进式开发企业级博客系统

    对于Java应用来说,ElasticSearch在全文搜索方面是一把“利器”。 本章节会将带领学员了解全文搜索的概念,并熟悉如何用ElasticSearch来实现全文搜索。 第8章 架构设计与分层 本章节讲解了系统的整体架构设计思路...

    SYPRO示例项目源码和EasyUI入门视频教程

    第14课(讲解tree的应用,tree的初始化方式、异步tree都需要那些配置、tree的lines、url、checkbox、属性,onLoadSuccess事件,getChecked方法的应用) 第15课(继续讲解tree的使用,介绍tree需要的JSON格式、常用事件和...

    JAVA上百实例源码以及开源项目源代码

    Java数组倒置 简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印...

    利用java语言实现开发高中校友录分享管理系统.zip

    非常感谢您的反馈!以下是更详细的描述: ...为了提高校友搜索的效率和准确性,我们使用了Elasticsearch搜索引擎,并进行了相关配置和优化。此外,我们还使用了WebSocket技术来实现实时通信功能,让用户可以快速、便

    springboot参考指南

    改变应用程序外部配置文件的位置 iii. 63.3. 使用'short'命令行参数 iv. 63.4. 使用YAML配置外部属性 v. 63.5. 设置生效的Spring profiles vi. 63.6. 根据环境改变配置 vii. 63.7. 发现外部属性的内置选项 iii. 64....

    task-manager

    HTML,CSS,SCSS,NgBootstrap,Typescript,Angular,Maven,Java,Spring Boot,Spring Security,Spring Data JPA,Hibernate Search,MySQL 设置 请按照以下步骤在本地服务器上运行此应用程序: 在/ sql-script...

    JAVA上百实例源码以及开源项目

     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,...

    sqltoy-orm框架系统-其他

    sqltoy-orm是比hibernate+myBatis更加贴合项目的orm框架,具有hibernate增删改的便捷性同时也具有比myBatis更加灵活优雅的自定义sql查询功能。 sqltoy-orm支持以下数据库: oracle 从oracle11g到19c db2 9.5+,建议从...

    java开源包1

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包11

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包2

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

Global site tag (gtag.js) - Google Analytics