文档章节

译:Hibernate Search - Getting started(Chapter 2)

cwalet
 cwalet
发布于 2012/06/01 16:15
字数 1213
阅读 319
收藏 3

Getting started with Hibernate Search

本章内容包括:
 什么是 Hibernate Search?
 如何建立和配置 Hibernate Search
 领域模型映射简介
 数据索引简介
 全文查询简介
 如何使用 Luke

在第1章, 我们讨论了集成全文搜索引擎 的复杂性 ,比如将 Apache Lucene整合到一个基于领域模型和使用Hibernate或Java持久化框架(JPA)的Java应用中。更确切的说,我们发现了3个有差异的地方 :
 结构不一致—如何将对象领域转换成纯文本的索引;如何处理索引中对象之间的关系。
 同步不匹配—如何保持数据库和索引实时同步。
 检索差异—如何将以领域模型为核心的数据检索方法和全文搜索技术进行 无缝的整合

Hibernate Search在平衡Hibernate ORM和Apache Lucene(全文搜索引擎)的技术差异中起到了杠杆一般的作用。本章为你提供了一个Hibernate Search的全局概览:如何使用,如何快速的构建全文搜索,以及如何将其融入到Hibernate的编程模型中。
Hibernate Search是一个用于补充Hibernate核心对于实体模型全文检索的支持不足而产生的项目。Hibernate大概是目前Java世界中最受欢迎的并且使用最多的ORM(对象-关系映射)工具(框架)。ORM的好处就是你可以以纯面向对象的方式(注:尽管我认为大部分是理想化的或者理论化的)来表达你的领域模型,并且它可以将这个模型透明的持久化到一个关系型数据库中。Hibernate(core)可以使用多种面向对象的方式去表达一个查询,如它内建的轻型的SQL扩展(HQL)、面向对象的条件API,或者使用原生的SQL语句等。通常像Hibernate这样的ORM框架都会提供比手写SQL更加优化的技术,如事务的控制(最后写进事务)、批量处理、第一/二级缓存。Hibernate基于开源许可协议发布,网址是http://hibernate.org
Hibernate Search的全文搜索技术完全基于Apache Lucene。而Lucene则是一个建立在Apache软件基金会(http://lucene.apache.org/java)的强大的全文搜索引擎库。它自发布以来迅速成为了Java语言中事实上的全文搜索技术标准。其成功的原因如下:
 免费开源
 易用且强大的API
 它对于数据索引和搜索是不可知论的(注:agnostic,不可知论,http://zh.wikipedia.org/zh/不可知论
 其性能和成熟度已经得到充分的证明
 和一个充满活力的社区

所有这些特质使得Lucene成为全文搜索解决方案中最好的资源库。这也就是为什么Hibernate Search要构建在Lucene之上的原因。
Hibernate Search同样是在开源协议下发布的,它是一座连接Lucene的特色功能和Hibernate世界的桥梁。Hibernate Search隐藏了部分低级和复杂的Lucene API,只提供必需的选项,以最少的工作来建立索引和检索Hibernate持久化模型。本章会让你较好的理解Hibernate Search是如何融入到Hibernate的编程模型中的,还介绍了如何快速上手使用Hibernate Search。
我们会以一个DVD音像店程序来演示两者的整合。当然不会写出整个程序来,而是把焦点放在领域模型和核心架构上,尤其是搜索引擎方面。
我们使用的对象模型很简单,只有一个‘Item’实体。Item表示一张DVD,我们想让用户根据DVD的一些相关属性来开始搜索。本章你将学会如何构建Hibernate Search、如何将元数据转化为可用于全文搜索的实体,以及对存放在数据库中的数据进行索引并在系统中检索匹配的数据。

需求: Hibernate Search需要些什么
Hibernate Search是在Java 5上开发的因此需要至少在Java开发工具包(JDK)或Java运行环境(JRE)5以上的版本才能运行。抛开这个限制不管,Hibernate Search可以运行在任何Hibernate可以运行的环境下,。几乎没可能列举出所有的Hibernate和Hibernate Search可运行的环境,我们仅列出其中比较典型的:
 部署在Java EE应用服务器中的程序(无论是否是Web程序)
 Servlet容器中的简单Web程序
 使用JBoss Seam的Web应用
 Swing程序
 所谓的轻量级依赖注入框架,如Spring、Guice、Web Beans
 Java SE上的应用程序
 一些使用了Hibernate的框架或平台,如Grails



© 著作权归作者所有

cwalet
粉丝 44
博文 111
码字总数 87663
作品 0
其他
私信 提问
Hibernate Search 5.6.0.Alpha2 发布

Hibernate Search 5.6.0.Alpha2 发布了,改进记录: ** Bug * [HSEARCH-1917] - Cannot index null or empty values for faceted fields ** New Feature * [HSEARCH-2065] - Support the Fac......

淡漠悠然
2016/02/29
1K
0
Hibernate Core 4.0.1 发布

Sub-task [HHH-2763] - Allow initialization during flush [HHH-6952] - Allow extensions of InfinispanRegionFactory to override classloader logic Bug [HHH-4439] - In general it is ......

咖啡碼農
2012/01/12
12
0
[关注&学习]patterns & practices Application Architecture Guide - v2.0 (Beta 1 Release)

园子里好多人已经推荐过这个了(参考强烈推荐:应用程序架构指导包v2.0),太喜欢了,故在自己这里留个备份,也是提醒自己要好好研究这本架构指导手册。 下载地址:http://www.codeplex.com/App...

吞吞吐吐的
2017/09/14
0
0
Hibernate Search 5.5.1 发布

Hibernate Search 5.5.1 发布,更新内容: Bug 修复 * [HSEARCH-2010] - Error message incorrectly references @SortField instead of @SortableField * [HSEARCH-2019] - Build order of M......

淡漠悠然
2015/11/25
596
0
Hibernate Search 4.2 Beta1 发布

Hibernate Search 4.2 发布了首个 Beta 版本,该版本最值得关注的就是引入了空间查询的特特性,你可以从 Spatial chapter of the documentation 这里获取相关的信息。 另外该版本升级到 Luce...

红薯
2012/06/22
603
2

没有更多内容

加载失败,请刷新页面

加载更多

Python登录豆瓣并爬取影评

上一篇我们讲过Cookie相关的知识,了解到Cookie是为了交互式web而诞生的,它主要用于以下三个方面: 会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息) 个性化设置(如...

猪哥66
20分钟前
1
0
常见排序的指针实现【C++ Code】

本来是想加上传cmp函数的,后来也懒得写了 然后基数排序虽然写的是模板类,但也只是支持整数了… #include <cstdio> #include <cstring> #include <algorithm> #include <typeinfo> using name......

shzwork
今天
3
0
OSChina 周一乱弹 —— 带这么多钱,你要泡我吗

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :白给?#今日歌曲推荐# 分享Lana Del Rey的单曲《Yayo》: 《Yayo》- Lana Del Rey 手机党少年们想听歌,请使劲儿戳(这里) @红薯...

小小编辑
今天
1K
15
搭建tftp服务

前言: 最近整理一些以前的学习笔记。 过去都是存储在本地,此次传到网络留待备用。 TFTP服务: TFTP:Trivial File Transfer Protocol 不重要文件传输协议 主要用来传送小文件,不支持认证和...

迷失De挣扎
今天
4
0
rest 的理解

rest:表现层状态转移。 什么是restful协议?https://en.wikipedia.org/wiki/Representational_state_transfer 使用restful的好处。 Rest是一种体系结构样式,他定义了一组用于创建web服务的...

xiaoxiao_go
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部