`
zhaolei415
  • 浏览: 169353 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hibrnate和lucene的集成

阅读更多
Lucene是一个高性能的java搜索引擎库,可以从 Apache软件基金组织获取。Hibernate Annotations包括一个注解包,它允许把任何域模型对象标记为可索引的,并且对任何经由Hibernate进行持续化的实例,Hibernate 都会为之维护一个对应的Lucene索引。

使用Lucene为实体建立索引

注解域模型

首先,必须将一个持久类声明为@Indexed:

@Entity
@Indexed(index="indexes/essays")
public class Essay {
...
}

属性index是告诉Hibernate, Lucene索引信息所在的位置(你文件系统的某个目录)。如果你想为所有的Lucene索引定义一个根目录,你可以在配置文件中用属性hibernate.lucene.index_dir进行配置。
Lucene索引包括四种字段:
keyword字段,text字段,unstored字段和unindexed字段。Hibernate注解提供了将实体属性标记为前三种被索引字段的注解。
@Entity
@Indexed(index="indexes/essays")
public class Essay {
...@Id
@Keyword(id=true)
public Long getId(){ return id; } @Text(name="Abstract")
public String getSummary(){ return summary; } @Lob
@Unstored
public String getText(){ return text; } }
这些注解定义了一个带有三个字段的索引:Id, Abstract 和
Text

注意:你必须在你的实体类的标志属性上指定@Keyword(id=true) 。

用于对元素建立索引的分析器类是可以通过hibernate.lucene.analyzer属性进行配置的。如果没有定义,则把org.apache.lucene.analysis.standard.StandardAnalyzer作为缺省。

激活自动索引
我们激活用于帧听三类Hibernate事件的LuceneEventListener,这些事件会在变更被提交至数据库后产生。

...
<event type="post-commit-update"

<event type="post-commit-insert"

<event type="post-commit-delete"


review 完毕:

1. Apache Software Foundation, Apache软件基金组织
2. domain model object,领域模型对象
3. First, we must declare a persistent class as @Indexed
  首先我们必须将持久类声明为@Indexed
4. The <literal>index</literal> attribute tells Hibernate where the Lucene index is located
  属性index告知Hibernate,Lucene索引信息所在的位置
5. If you wish to define a base directory for all lucene indexes,
  如果你想为......定义一个根目录(base directory)
6. one of the first three kinds of indexed fields.
  ......被索引字段......
7. These annotations define an index with three fields:
  上述注解定义了一个带有三个字段的索引:
8. on the identifier property of
  标识属性(identifier property)
9. The analyzer class used to index the elements is configurable through the <literal>hibernate.lucene.analyzer</literal> property.
  用于对元素建立索引的分析器类是可以通过......属性进行配置的
10. Enabling automatic indexing
  激活自动索引
11. we enable the <literal>LuceneEventListener</literal> for
the three Hibernate events that occur after changes are committed to the
database.
  我们激活用于帧听三类Hibernate事件的LuceneEventListener,这些事件会在变更被提交至数据库后产生。








分享到:
评论

相关推荐

    Lucene Hibernate

    通过研究这些资源,开发者可以更好地理解如何在实际项目中应用Lucene和Hibernate的结合,从而提高应用程序的搜索功能,为用户提供更加高效和精准的搜索体验。 总结来说,"Lucene Hibernate"的结合是一个强大的工具...

    spring+hibernate3+struts2+lucene

    【标题】"Spring+Hibernate3+Struts2+Lucene" 框架组合是过去在Web开发中广泛采用的一种技术栈,它整合了四个强大的开源框架,为构建高效、可扩展的企业级应用提供了坚实的基础。 Spring框架是Java企业级应用的核心...

    Struts2.3.8整合Hibernate4.2,Spring3.2lucene 3 6 2 SSH整合1.0版

    Struts2.3.8、Hibernate4.2和Spring3.2是Java开发中的三大主流框架,它们分别负责Web层、持久层和业务层的管理,而Lucene 3.6.2则是一个强大的全文搜索引擎库。这个整合版本称为SSH整合1.0版,旨在提供一个高效、...

    hibernate-hql-lucene-1.0.1.Final.zip

    【标题】"hibernate-hql-lucene-1.0.1.Final.zip" 提供的是一个关于Hibernate HQL与Lucene集成的开源项目版本,主要用于在Java应用程序中实现高效、复杂的全文搜索功能。 【描述】"pact-jvm.zip,pact模型" 指的是...

    Spring3 + Hibernate3 + Lucene3 + Easyui + Mysql 简单例子

    这是一个整合了多个核心技术的Web应用开发实例,涵盖了Spring3、Hibernate3、Lucene3、EasyUI和MySQL等组件。下面将分别对这些技术进行详细解释。 **Spring3**: Spring是一个开源的应用框架,核心功能包括依赖注入...

    J2EE博客系统 struts2+spring+hibernate+oracle+lucene

    本篇将深入探讨一个基于J2EE的博客系统,该系统采用经典的“s2sh”整合框架,即Struts2、Spring和Hibernate,以及Oracle数据库和Lucene全文搜索引擎,旨在构建高效、稳定且功能齐全的博客平台。 首先,Struts2作为...

    ssh集成Lucene4.7demo

    至于MySQL的8000条测试数据,它们可能是为了模拟真实应用场景而创建的,用于验证和测试SSH+Lucene的集成效果。这些数据可以帮助开发者在实际环境中检验搜索性能和功能的正确性。 总的来说,这个“ssh集成Lucene4.7...

    hibernate search

    2. **Hibernate 和 Lucene**:下载并准备好相关的库文件,包括但不限于 hibernate-search.jar、lucene-core.jar、hibernate-commons-annotations.jar 等。 3. **IDE**:选择一个合适的集成开发环境 (IDE) 进行开发...

    hibernate中文帮助文档

    5. Hibernate与Lucene集成:Hibernate支持与Apache Lucene集成,使你能够为实体建立全文索引,提高搜索性能。 总的来说,这个中文帮助文档详尽地阐述了使用Hibernate注解进行数据库映射的各种细节,对于理解和使用...

    最新版windows lucene-8.10.0.zip

    在使用这个压缩包时,首先需要解压,然后根据提供的API文档和示例代码,将Lucene集成到你的Java项目中,创建和管理索引,执行搜索查询,并处理搜索结果。同时,确保你的系统环境满足Lucene的运行要求,例如Java版本...

    Hibernate搜索框架HibernateSearch.zip

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

    Search Lucene JavaEE WebApp Struts2 Hibernate.zip

    本项目"Search Lucene JavaEE WebApp Struts2 Hibernate.zip"旨在提供一个完整的解决方案,利用JavaEE平台,结合流行的开源技术Lucene、Struts2和Hibernate,构建一个强大的企业级搜索应用。 首先,Lucene是Apache...

    lucene jar包

    8. **扩展性**:Lucene作为一个基础库,可以与其他框架如Spring、Hibernate等无缝集成,也可以作为搜索引擎的基础组件,如Elasticsearch就是基于Lucene构建的。 9. **社区支持**:Lucene拥有活跃的开源社区,不断有...

    java Lucene 工具类

    此外,博主可能还会介绍如何处理异常、性能调优技巧以及如何使用Lucene与其他Java库(如Spring、Hibernate等)集成。 总之,Java Lucene工具类是开发者实现全文搜索功能的强大助手,通过博主的示例,我们可以学习到...

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

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

    Hibernate Annotations 中文文档

    Hibernate Annotations API 中文文档 前言 1. 创建一个注解项目 1.1. 系统需求 1.2. 系统配置 ...5. Hibernate与Lucene集成 5.1. 使用Lucene为实体建立索引 5.1.1. 注解领域模型 5.1.2. 启用自动索引

    hibernate_-annotations_中文帮助文档

    7. **Hibernate与Lucene集成** Hibernate支持与Lucene搜索引擎集成,可以为实体建立索引,实现全文搜索功能。 总之,《Hibernate Annotations 中文帮助文档》是Java开发者的宝贵资源,它详细解释了如何利用注解...

    lucene.jar架包

    1. **compass-2.1.0.jar**:Compass 是基于 Lucene 的一个高级搜索引擎框架,提供了与 ORM 框架(如 Hibernate)的集成,使得数据库中的数据可以被全文搜索。 2. **lucene-core.jar**:Lucene 的核心库,包含所有...

    Hibernate Search In Action

    Hibernate Search和Lucene都允许根据各种标准对文档进行评分,其中最重要的就是相关性评分。相关性评分帮助系统确定哪些文档对于特定查询更为重要,然后根据这个评分对搜索结果进行排序,将最相关的文档排在最前面。...

Global site tag (gtag.js) - Google Analytics