`
Wind_ZhongGang
  • 浏览: 264139 次
  • 性别: 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
分享到:
评论

相关推荐

    hibernateSearch+demo

    这个“hibernateSearch+demo”项目提供了一个实战示例,帮助开发者理解并应用 Hibernate Search 的核心概念和功能。 在 Hibernate Search 中,主要涉及以下关键知识点: 1. **全文索引**:Hibernate Search 使用 ...

    hibernate Search in action

    读者将学习如何配置Hibernate Search,以及如何将它与现有的Hibernate实体映射。接下来,书中会讲解如何定义和使用分析器,这是处理文本数据并准备进行全文搜索的关键步骤。分析器的选择和定制对于搜索性能和结果的...

    hibernate search全文索引的创建及查询

    Hibernate Search是Hibernate ORM框架的一个扩展,它允许开发者在Java应用中实现全文搜索功能。这个工具结合了ORM的强大和Lucene搜索引擎的高效,使得数据库中的数据可以被快速、精准地检索。本文将深入探讨如何创建...

    hibernate search

    - 在项目的配置文件中设置 Hibernate 和 Lucene 的相关参数。 - 配置 Hibernate 时,需要指定使用 Hibernate Search 的搜索存储和索引策略。 - 可以通过 `hibernate.cfg.xml` 或 `persistence.xml` 文件来进行...

    Hibernate搜索框架HibernateSearch.zip

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

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

    本资源提供了基于Hibernate Search实现的全文搜索引擎的完整代码和配置文件,适用于处理中英文数据,具备拼音搜索、错误纠正和搜索建议等高级功能。 Hibernate Search是Hibernate ORM的一个扩展,它允许开发者在...

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

    3. **配置SessionFactory**:在Spring配置文件中,配置Hibernate的SessionFactory,并添加Hibernate Search的相关配置,如索引目录位置。 4. **索引管理器**:在应用程序启动时,你可以使用`@PostConstruct`注解的...

    Hibernate Search in action (pdf && code)

    接着,会详细讲解如何配置和初始化Hibernate Search,包括设置索引存储、分析器选择和分词策略等关键步骤。 在数据模型部分,书中会阐述如何使用注解或XML来定义可被搜索的字段,以及如何处理多对一、一对多等复杂...

    hibernate_search.pdf

    - **配置**:涵盖Hibernate Search的基本配置,包括如何在应用程序中启用搜索功能。 - **索引化**:介绍如何创建、更新或删除索引,是全文搜索的基础。 - **搜索**:讲解如何利用Hibernate Search执行查询,获取结果...

    hibernate-search-4.3.0.zip

    以下是一个简单的使用Hibernate Search 4.3.0进行全文搜索的示例: ```java @Entity @Indexed public class Product { @Id private Long id; @Field(index=Index.YES, analyze=Analyze.YES, store=Store.NO) ...

    hibernate search4.2

    Hibernate Search 4.2 是一个基于 Hibernate ORM 的全文搜索引擎组件,它允许开发者在 Java 应用程序中实现高效、复杂的全文检索功能。该版本发布于几年前,但仍然是许多项目依赖的重要工具,尤其对于那些需要在大量...

    Hibernate Search in Action

    Hibernate Search是一个在Hibernate ORM之上构建的搜索引擎,它允许开发者在Java应用中实现强大的、数据库集成的全文搜索功能。以下是对该主题的详细阐述: 1. Hibernate Search概述:Hibernate Search是一个开源...

    hibernate-search-4.2.0.jar及说明pdf

    Hibernate Search是Hibernate ORM框架的一个扩展,它将强大的全文搜索引擎Lucene集成到Java应用程序中,允许开发者在数据库对象上进行复杂的全文搜索。4.2.0版本是这个功能强大的工具的一个里程碑,提供了许多改进...

    hibernate search源码

    在实际应用中,`hibernate-search-3.4.0.Final`可能与Hibernate ORM、JPA以及应用服务器如Tomcat或JBoss一起部署。源码中的`jbossmodules`模块展示了如何在这些环境中配置和启动Hibernate Search。 **9. 学习路径**...

    hibernate-search-5.5.1.Final-dist.zip

    Hibernate Search,作为Hibernate ORM的一个扩展,提供了在Java应用中进行全文搜索和复杂索引的能力。这个压缩包“hibernate-search-5.5.1.Final-dist.zip”包含了Hibernate Search 5.5.1.Final版本的所有组件,是...

    hibernate-search-5.1.1.Final-dist.zip

    Hibernate Search是Hibernate项目的一个重要组成部分,它将强大的全文搜索引擎Lucene集成到Java持久化框架Hibernate中,使得在Java应用程序中进行复杂的全文搜索变得简单而高效。在本篇文章中,我们将深入探讨...

    Getting Started with Hibernate search

    综上所述,Hibernate Search为Java开发者提供了一套全面的全文搜索解决方案,通过其强大的功能和灵活的配置选项,可以极大地提升应用程序的搜索能力和用户体验。无论是初学者还是有经验的开发者,都可以从学习和应用...

Global site tag (gtag.js) - Google Analytics