譯:Hibernate Search - Getting started(Chapter 2)

Getting started with Hibernate Searchjava

本章內容包括:
 什麼是 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
相關文章
相關標籤/搜索