`
jiangnan2112
  • 浏览: 122274 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

HibernateSearch学习3

阅读更多
Embedded and associated objects
Using @IndexedEmbedded to index associations
@Entity
@Indexed
public class Place {
@Id
@GeneratedValue
@DocumentId
private Long id;
@Field( index = Index.TOKENIZED )
private String name;
@OneToOne( cascade = { CascadeType.PERSIST, CascadeType.REMOVE } )
@IndexedEmbedded
private Address address;
....
}
@Entity
public class Address {
@Id
@GeneratedValue
private Long id;
@Field(index=Index.TOKENIZED)
private String street;
@Field(index=Index.TOKENIZED)
private String city;
@ContainedIn
@OneToMany(mappedBy="address")
private Set<Place> places;
...
}

In this example, the place fields will be indexed in the Place index. The Place index documents
will also contain the fields address.id, address.street, and address.city which you will be
able to query. This is enabled by the @IndexedEmbedded annotation.
Be careful. Because the data is denormalized in the Lucene index when using the
@IndexedEmbedded technique, Hibernate Search needs to be aware of any change in the Place
object and any change in the Address object to keep the index up to date. To make sure the Place
Lucene document is updated when it's Address changes, you need to mark the other side of the
bidirectional relationship with @ContainedIn.
@ContainedIn is only useful on associations pointing to entities as opposed to embedded
(collection of) objects.
Let's make our example a bit more complex:
@Entity
@Indexed
public class Place {
@Id
@GeneratedValue
@DocumentId
private Long id;
@Field( index = Index.TOKENIZED )
private String name;
@OneToOne( cascade = { CascadeType.PERSIST, CascadeType.REMOVE } )
@IndexedEmbedded
private Address address;
....
}
@Entity
public class Address {
@Id
@GeneratedValue
private Long id;
@Field(index=Index.TOKENIZED)
private String street;
@Field(index=Index.TOKENIZED)
private String city;
@IndexedEmbedded(depth = 1, prefix = "ownedBy_")
private Owner ownedBy;
@ContainedIn
@OneToMany(mappedBy="address")
private Set<Place> places;
...
}
@Embeddable
public class Owner {
@Field(index = Index.TOKENIZED)
private String name;
...
}

.。。。。。。。。。。。
分享到:
评论

相关推荐

    Hibernate Search In Action

    Hibernate Search库将全文搜索与Hibernate持久化框架紧密结合,为Java开发者提供了方便的方式来集成全文搜索功能,而无需深入学习底层搜索引擎的复杂性。 Hibernate Search的一个显著优势是它能够自动化管理索引与...

    hibernate Search in action

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

    Hibernate Search配置及简单应用

    **Hibernate Search配置及简单应用** Hibernate Search是Hibernate框架的一个扩展,它允许我们在应用程序中实现全文检索功能,使得数据库中的数据可以被快速、高效地搜索。这个功能尤其在处理大量文本数据时非常...

    Hibernate Search in action (pdf && code)

    《Hibernate Search in Action》是一本深入探讨Hibernate Search技术的专业书籍,配合源代码一同学习,能够帮助读者更好地理解和应用这项强大的全文检索和分析框架。Hibernate Search是Hibernate ORM的一个扩展,它...

    hibernate search-3.4.0.Final-dist

    这意味着开发者可以利用熟悉的Hibernate API来处理搜索操作,大大降低了学习成本。 在3.4.0.Final版本中,主要包含以下几个关键特性: 1. **全文索引**:Hibernate Search能够自动为实体类的字段建立全文索引,...

    hibernate-search-5.5.4 api docset for Dash

    3. **全文检索**:Hibernate Search支持对数据库中的文本字段进行全文检索,包括模糊匹配、近似搜索、短语搜索等高级查询。 4. **倒排索引**:Lucene采用倒排索引来加速搜索,每个单词都指向包含该词的文档列表,...

    Getting Started with Hibernate search

    标题与描述:“Getting Started with Hibernate Search” 在深入探讨前,我们先来理解“Hibernate Search”这一概念。...无论是初学者还是有经验的开发者,都可以从学习和应用Hibernate Search中获益匪浅。

    Getting Started with Hibernate Search

    ### 使用Hibernate Search入门详解 #### 引言 Hibernate Search作为Hibernate Core的...无论是初学者还是有经验的开发者,都可以通过学习和实践,充分发挥Hibernate Search的优势,提升数据检索的效率和用户体验。

    hibernate search源码

    本篇文章将深入探讨Hibernate Search的源码,帮助你理解其工作原理,并提供研究和学习的指导。 **1. 概述** Hibernate Search的核心功能是通过Apache Lucene库实现的全文检索。它允许开发者对持久化的实体对象进行...

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

    综上所述,基于Spring的Hibernate Search全文检索功能示例涵盖了从集成、配置、索引构建到查询和优化等多个环节,是学习和实践中不可多得的参考资料。通过深入理解和实践,开发者可以为自己的Java应用带来高效、精准...

    \hibernate search in action.rar

    2. **安装与配置**:学习如何在项目中添加Hibernate Search依赖,配置相关的XML或Java配置文件,设置索引目录,以及与数据库和Lucene版本的兼容性问题。 3. **基本概念**:理解`@Indexed`、`@Field`、`@AnalyzerDef...

    hibernate-search-4.5.0.Final-dist.zip

    9. **文档**:这个版本包含了详尽的官方文档,指导开发者如何配置、使用以及优化Hibernate Search,方便学习和调试。 在实际应用中,Hibernate Search 4.5.0.Final可以用于电商网站的商品搜索、新闻平台的内容检索...

    深入学习hibernate

    【深入学习Hibernate】这篇文章主要介绍了Hibernate这一流行的Java ORM框架,旨在帮助初学者更好地理解和应用Hibernate。Hibernate是一个开源的持久层框架,它简化了Java应用程序与关系数据库之间的交互,实现了对象...

    Shiro+SpringMVC+Hibernate Search+Hibernate+Bootstrap企业信息管理系统基础框架搭建整合实例代码教程

    3. Hibernate Search:这是Hibernate的一个扩展,提供了全文搜索引擎的功能,允许开发者对数据库中的数据进行高效的全文检索。在企业信息管理系统中,Hibernate Search可以用来实现复杂的查询需求,比如模糊搜索、...

    hibernate-search-3.4.0.Final--1.rar

    《Hibernate Search 3.4.0.Final:深入理解与应用》 Hibernate Search是Hibernate框架的一个强大扩展,它为Java应用程序提供了全文检索功能。在3.4.0.Final版本中,这一特性得到了进一步的优化和完善,使得开发者...

    hibernate-search-orm-5.0.0.Alpha1.zip

    2. Hibernate Search ORM:学习如何集成和配置Hibernate Search,创建索引,执行全文搜索,以及高级查询功能。 3. Spring MVC:理解Spring MVC的组件如DispatcherServlet、Controller、ModelAndView等,以及如何编写...

    Hibernate_Search_Reference_Guide

    通过本参考指南的学习,开发者能够了解到如何在 JBoss Enterprise Application Platform 4.3 中集成和使用 Hibernate Search,从而为基于 Hibernate 的应用程序添加强大的全文搜索功能。从环境搭建、配置管理到具体...

    hibernate_search_reference.pdf

    ### Hibernate Search 参考指南知识点概述 #### 一、引言 `hibernate_search_reference.pdf` 是关于 Hibernate Search 的一份详尽参考文档,版本号为 3.2.1.Final。该文档覆盖了 Hibernate Search 的核心概念、配置...

    hibernate-search-4.1.0.Final-dist.zip

    《深入理解Hibernate Search 4.1.0.Final:企业级全文检索的基石》 Hibernate Search是Hibernate ORM框架的一个扩展,它将强大的全文搜索引擎Lucene集成到Java应用程序中,为数据库对象提供了高级搜索功能。本篇...

    hibernate学习

    hibernate search 和lucene结合使用实例

Global site tag (gtag.js) - Google Analytics