Hibernate Lucene Integration
Hibernate Lucene 的集成
Lucene is a high-performance Java search engine library available from
the Apache Software Foundation. Hibernate Annotations includes a package of
annotations that allows you to mark any domain model object as indexable and
have Hibernate maintain a Lucene index of any instances persisted via
Hibernate.
Lucene是一个高性能的java搜索引擎库,可以从 Apache软件基金组织获取。Hibernate Annotations包括一个注解包,它允许把任何域模型对象标记为可索引的,并且对任何经由Hibernate进行持续化的实例,Hibernate 都会为之维护一个对应的Lucene索引。
Using Lucene to index your entities
使用Lucene为实体建立索引
Annotating your domain model
注解域模型
First, we must declare a persistent class as
@Indexed:
首先,必须将一个持久类声明为@Indexed:
@Entity
@Indexed(index="indexes/essays")
public class Essay {
...
}
The index attribute tells Hibernate where the
Lucene index is located (a directory on your file system). If you wish
to define a base directory for all lucene indexes, you can use the
hibernate.lucene.index_dir property in your
configuration file.
属性index是告诉Hibernate, Lucene索引信息所在的位置(你文件系统的某个目录)。如果你想为所有的Lucene索引定义一个根目录,你可以在配置文件中用属性hibernate.lucene.index_dir进行配置。
Lucene indexes contain four kinds of fields:
keyword fields, text fields,
unstored fields and unindexed
fields. Hibernate Annotations provides annotations to mark a property of
an entity as one of the first three kinds of indexed fields.
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; } }
These annotations define an index with three fields:
Id, Abstract and
Text.
这些注解定义了一个带有三个字段的索引:Id, Abstract 和
Text
Note: you must specify
@Keyword(id=true) on the identifier property of your
entity class.
注意:你必须在你的实体类的标志属性上指定@Keyword(id=true) 。
The analyzer class used to index the elements is configurable
through the hibernate.lucene.analyzer property. If
none defined,
org.apache.lucene.analysis.standard.StandardAnalyzer
is used as the default.
用于对元素建立索引的分析器类是可以通过hibernate.lucene.analyzer属性进行配置的。如果没有定义,则把org.apache.lucene.analysis.standard.StandardAnalyzer作为缺省。
Enabling automatic indexing
激活自动索引
Finally, we enable the LuceneEventListener for
the three Hibernate events that occur after changes are committed to the
database.
我们激活用于帧听三类Hibernate事件的LuceneEventListener,这些事件会在变更被提交至数据库后产生。
...
<event type="post-commit-update"></event>
<event type="post-commit-insert"></event>
<event type="post-commit-delete"></event>
分享到:
相关推荐
标题“Lucene Hibernate”揭示了我们讨论的核心主题:如何将Apache Lucene这个强大的全文搜索引擎与Hibernate这款流行的Java对象关系映射(ORM)框架相结合。在这个例子中,我们将深入探讨这两个技术的集成,以及...
### 五、Hibernate Lucene集成 #### 4.1 使用Lucene索引实体 - **4.1.1 注解模型**:通过特定的注解,如`@Indexed`,将实体类标记为可索引。 - **4.1.2 自动索引**:配置自动索引更新机制,保持索引与数据库同步。 ...
【标题】"Spring+Hibernate3+Struts2+Lucene" 框架组合是过去在Web开发中广泛采用的一种技术栈,它整合了四个强大的开源框架,为构建高效、可扩展的企业级应用提供了坚实的基础。 Spring框架是Java企业级应用的核心...
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集成的开源项目版本,主要用于在Java应用程序中实现高效、复杂的全文搜索功能。 【描述】"pact-jvm.zip,pact模型" 指的是...
在这个“ssh集成Lucene4.7demo”项目中,开发者将SSH框架与Lucene 4.7版本的全文搜索引擎进行了整合,同时还引入了IKAnalyzer作为中文分词器,以支持对中文文本的处理。这个示例项目不仅包含了基本的整合工作,还...
《J2EE博客系统:Struts2+Spring+Hibernate+Oracle+Lucene的深度解析》 在现代Web开发中,J2EE(Java Platform, Enterprise Edition)架构是企业级应用的首选平台,它提供了强大的服务支持和丰富的组件库。本篇将...
这是一个整合了多个核心技术的Web应用开发实例,涵盖了Spring3、Hibernate3、Lucene3、EasyUI和MySQL等组件。下面将分别对这些技术进行详细解释。 **Spring3**: Spring是一个开源的应用框架,核心功能包括依赖注入...
Hibernate Search主要有以下功能特点:1,功能强大,配置简单 - 配置只需要修改persistence.xml(JPA),hibernate.cfg.xml(Hibernate)2,支持Hibernate,以及EJB3 JPA标准应用3,集成全文搜索引擎Lucene - Lucene...
在使用这个压缩包时,首先需要解压,然后根据提供的API文档和示例代码,将Lucene集成到你的Java项目中,创建和管理索引,执行搜索查询,并处理搜索结果。同时,确保你的系统环境满足Lucene的运行要求,例如Java版本...
5. Hibernate与Lucene集成:Hibernate支持与Apache Lucene集成,使你能够为实体建立全文索引,提高搜索性能。 总的来说,这个中文帮助文档详尽地阐述了使用Hibernate注解进行数据库映射的各种细节,对于理解和使用...
《构建基于JavaEE的搜索引擎应用:Lucene、Struts2与Hibernate的整合实践》 在当今信息化社会,数据量日益增长,高效的搜索功能成为Web应用程序不可或缺的部分。本项目"Search Lucene JavaEE WebApp Struts2 ...
2. **Hibernate 和 Lucene**:下载并准备好相关的库文件,包括但不限于 hibernate-search.jar、lucene-core.jar、hibernate-commons-annotations.jar 等。 3. **IDE**:选择一个合适的集成开发环境 (IDE) 进行开发...
8. **扩展性**:Lucene作为一个基础库,可以与其他框架如Spring、Hibernate等无缝集成,也可以作为搜索引擎的基础组件,如Elasticsearch就是基于Lucene构建的。 9. **社区支持**:Lucene拥有活跃的开源社区,不断有...
4. 集成改进:与Spring、Hibernate等框架的集成更加顺畅,简化了开发流程。 5. 错误修复:修复了一些已知的bug,增强了系统的稳定性。 三、Windows环境下的安装与配置 在Windows环境下部署Lucene 8.6.0,首先需要...
Hibernate Search库将全文搜索与Hibernate持久化框架紧密结合,为Java开发者提供了方便的方式来集成全文搜索功能,而无需深入学习底层搜索引擎的复杂性。 Hibernate Search的一个显著优势是它能够自动化管理索引与...
"Lucene与SSH2搜索功能"的主题聚焦于如何在Java Web开发环境中利用Apache Lucene库来构建强大的搜索功能,并结合Struts2、Spring和Hibernate(简称SSH2)这三大框架进行整合。下面我们将深入探讨这些技术及其相互...
此外,博主可能还会介绍如何处理异常、性能调优技巧以及如何使用Lucene与其他Java库(如Spring、Hibernate等)集成。 总之,Java Lucene工具类是开发者实现全文搜索功能的强大助手,通过博主的示例,我们可以学习到...
在实际应用中,开发者通常会将Apache Lucene与诸如Spring、Hibernate等其他Java框架集成,以构建完整的搜索引擎解决方案。导入"Lucene.jar"到项目工程中,就可以利用这些功能来提升应用的搜索体验。 总的来说,...