世界排名第一的搜索引擎開發:Elasticsearch+Lucene用Java實作

世界排名第一的搜索引擎開發:Elasticsearch+Lucene用Java實作
定價:580
NT $ 334 ~ 522
  • 作者:姚攀
  • 出版社:佳魁資訊
  • 出版日期:2018-04-02
  • 語言:繁體中文
  • ISBN10:9863796344
  • ISBN13:9789863796343
  • 裝訂:平裝 / 424頁 / 17 x 23 cm / 普通級 / 單色印刷 / 初版
 

內容簡介

大資料時代的資訊檢索技術

  騰訊、阿里巴巴、百度、東京等一線互聯網公司正大力推進Elasticsearch的使用場景,本書以豐富的實例介紹Elasticsearch,可幫助讀者快速應用Lucene庫處理全文檢索業務,掌握使用Elasticsearch搭建分散式搜尋引擎的方法與技巧。

  本書為入門Lucene、Elasticsearch

  首先介紹資訊檢索領域中一些基本理論,也就是Lucene的數學模型,之後介紹如何使用Lucene 函數庫建置全文檢索系統,最後介紹Elasticsearch。按照從數學模型到入門基礎再到專案實戰的想法來撰寫,數學模型讓讀者知其然也知其所以然,入門基礎是理論到實際應用的必經之路,專案實戰則是為了學以致用。書中的每一部分都力圖簡明扼要,使用大量實例和程式,為讀者能夠快速掌握全文檢索技術掃除障礙。
 
 

作者介紹

作者簡介

姚攀


  中國科學院大學碩士,擅長j2ee開發,對搜索引擎技術有濃厚興趣和深入研究,有豐富的Lucene和ElasticSearch開發經歷和專案經驗,活躍於CSDN社區,目前從事ES搜索業務開發工作。
 

目錄

前言

第1 篇 基礎篇

01  Java 概述

1.1 Java 簡介
1.2 Java 系統
1.3 JDK 工具
1.4 Hello World 程式
1.5 輸出與註釋
1.6 IDE 整合式開發環境
1.7 貫穿工作實現

02  Java 語言基礎
2.1  字元
2.2 變數和常數
2.3 資料類型
2.4 運算符號
2.5 流程控制
2.6 陣列
2.7 貫穿工作實現

03  物件導向基礎
3.1  物件導向思維
3.2 類別與物件
3.3 方法
3.4 封裝和存取控制
3.5 靜態成員
3.6 物件陣列
3.7 貫穿工作實現

04  核心類別
4.1 基本類型的封裝類別
4.2 Boxing 和拆箱
4.3 Object 類別
4.4 字串類別
4.5 Scanner 類別
4.6 Math 類別
4.7 Date 類別
4.8 貫穿工作實現

05  類別之間的關係
5.1 關係概述
5.2 繼承與多形
5.3 其他關係
5.4 內部類別
5.5 單例模式
5.6 貫穿工作實現

06  抽象類別和介面
6.1 抽象類別
6.2 介面
6.3 instanceof 關鍵字
6.4 貫穿工作實現

07  例外
7.1 例外概述
7.2 捕捉例外
7.3 拋出例外
7.4 自訂例外
7.5 貫穿工作實現

08  泛型與集合
8.1 泛型
8.2 集合概述
8.3 集合類別
8.4 集合轉換
8.5 集合工具類別
8.6 貫穿工作實現

第2 篇 進階篇

09  檔案及IO 串流

9.1 檔案
9.2 IO 串流
9.3 位元組串流
9.4 字元串流
9.5 過濾串流和轉換串流
9.6 物件串流
9.7 NIO
9.8 貫穿工作實現

10  JDBC 程式設計
10.1 JDBC 基礎
10.2 資料庫環境架設
10.3 資料庫存取
10.4 操作資料庫
10.5 中繼資料
10.6 交易處理
10.7 貫穿工作實現

11  Swing UI 設計
11.1 GUI 概述
11.2 容器
11.3 版面配置
11.4 事件處理
11.5 基本元件
11.6 貫穿工作實現

12  進階UI 元件
12.1 對話方塊
12.2 選單
12.3 工具列
12.4 表格
12.5 樹狀結構
12.6 貫穿工作實現

13  執行緒
13.1 執行緒概述
13.2 建立執行緒
13.3 執行緒生命週期
13.4 執行緒優先順序
13.5 執行緒同步
13.6 執行緒通訊
13.7 Timer 和Swing Timer
13.8 貫穿工作實現

14  網路程式設計
14.1 網路基礎
14.2 Java 網路API
14.3 以TCP 為基礎的網路程式設計
14.4 貫穿工作實現

15  Java 進階應用
15.1 類別載入
15.2 反射
15.3 列舉
15.4 註釋
15.5 國際化
15.6 格式化處理
15.7 貫穿工作實現

16  Java 新特性
16.1 介面的預設方法和靜態方法
16.2 Lambda 運算式
16.3 函數式介面
16.4 :: 方法參考
16.5 Java 8 新增類別庫
16.6 貫穿工作實現

A Eclipse 整合式開發環境
B Javac 指令
C Java 指令
D Jar 套件
E 靜態塊
F 常用的類別
G ASCII 表
H WindowBuilder 外掛程式
I 資料庫連接池
J RowSet
 

前言

  我們正處在一個大數據時代,大數據並不僅是指巨量資料,而更多的是指這些資料都是非結構化的、無法用傳統的方法進行處理的資料。相信很多人聽說過目前在雲端運算和大數據領域裡如日中天的Hadoop,Hadoop 的發起人之一是大名鼎鼎的Doug Cutting。早在Hadoop 誕生之前,Doug Cutting 已經用Java 實現了第一個提供全文文字搜索的開放原始碼函數程式庫Lucene。Lucene 自2000 年發佈第一個開放原始碼版本以來,在開放原始碼社區引起了很大的迴響,為廣大開發者提供了研發全文檢索系統的利器。Lucene 作為Apache 的頂級專案,有大量研發人員貢獻原始程式,經過十幾年的發展,目前Lucene 已經十分成熟,可以說Lucene 是當今最先進、最高效的全功能開放原始碼搜尋引擎工具套件。但Lucene 只是一個全文檢索類別庫,Elasticsearch是一個建立在Lucene 基礎上的即時的分散式搜尋引擎,2010 年由Shay Bano發佈。相比於Lucene,Elasticsearch 功能更加強大,使用更加方便。

  站在巨人的肩膀上, 入門搜索技術並不困難, 本書為入門Lucene、Elasticsearch 而生。首先介紹資訊檢索領域中一些基本理論,也就是Lucene的數學模型,之後介紹如何使用Lucene 函數庫建置全文檢索系統,最後介紹Elasticsearch。本書按照從數學模型到入門基礎再到專案實戰的想法來撰寫,數學模型讓讀者知其然也知其所以然,入門基礎是理論到實際應用的必經之路,專案實戰則是為了學以致用。書中的每一部分都力圖簡明扼要,使用大量實例和程式,為讀者能夠快速掌握全文檢索技術掃除障礙。將全文檢索領域中的一些知識和專案經驗分享給大家,是筆者寫作本書的初衷。

  ✤ 本書結構

  本書從邏輯上可劃分為三部分。

  第一部分(第1 章)
  主要介紹資訊超載、資訊檢索、倒排索引、布林模型、tf-idf、向量空間模型、機率檢索模型等資訊檢索領域的基礎知識。

  第二部分(第2 和3 章)
  介紹如何使用Lucene 開發全文檢索系統。
  ■ 第2 章主要介紹Lucene 的基礎知識,內容包含Lucene 的特點、Lucene 架構、Luke 的使用、IK 分詞器設定、擴充詞函數庫和遠端詞函數庫的設定、Lucene 的多種分詞器、索引的建置方法、檢索文件以及實現檢索關鍵字反白的方法
  ■ 第3 章是Lucene 專案實戰部分,介紹如何使用Lucene 建置一個檔案檢索系統,內容包含專案的整體設計、使用Tika 做資訊取出、索引的建置、使用者查詢介面的設計與實現、使用者查詢處理、搜索結果展示等內容。

  第三部分(第4~11 章)
  主要介紹Elasticsearch 分散式搜尋引擎的相關技術。
  ■ 第4 章是Elasticsearch 簡介, 內容包含Elasticsearch 與Lucene 的關係、Elasticsearch 的整體架構、核心概念、在企業中的應用案例、流行度趨勢、Elasticsearch 的安裝、中文分詞設定以及相關外掛程式的安裝與使用。
  ■ 第5章是Elasticsearch叢集入門,主要內容包含索引管理、文件管理和對映詳解。
  ■ 第6章介紹Elasticsearch的搜索功能,主要內容包含搜索機制的解讀、全文查詢、詞項查詢、複合查詢、巢狀結構查詢、位置查詢、特殊查詢、搜索反白和排序。
  ■ 第7章介紹Elasticsearch的聚合分析功能。
  ■ 第8章介紹如何使用Elasticsearch Java API做延伸開發。
  ■ 第9章介紹Elasticsearch叢集管理的相關基礎知識,包含腦分裂問題、叢集規劃、索引規劃、分散式叢集的架設方法以及如何檢視叢集的監控資訊。
  ■ 第10章是Elasticsearch整合MySQL專案實戰部分,透過實現對MySQL中的資料進行全文檢索這一需求,貫穿了MySQL、JDBC、Elasticsearch Java API 以及Java Web 的相關知識,讓讀者了解在實際的專案開發中使用Elasticsearch做全文檢索搜尋的方法。
  ■ 第11章介紹Elasticsearch和Hadoop大數據平台互動的方法。

  ✤ 學習本書的預備知識

  Java 基礎
  首先要設定好Java 開發環境。不論是學習Lucene 還是Elasticsearch 都需要安裝好Java 環境,Elasticsearch 的執行要求JDK 版本最低為1.7,建議使用JDK 1.8 及以上版本。鑑於Java 的跨平台特性,對作業系統沒有要求,在Windows、Linux、Mac OS X 系統上都可以執行Elasticsearch。除此之外,讀者需要掌握Java 基礎知識。

  Java Web 開發技術
  在專案實戰中需要用到Java Web 的相關技術,建議讀者在閱讀本書之前掌握HTML、CSS、JSP 等基礎知識,掌握Java Web 專案的部署和執行。

  ✤ 本書使用的軟體版本

  本書基於Lucene 6.0 和Elasticsearch 5.4.0 說明,整合式開發環境為Eclipse4.6.1。

  ✤ 適合讀者群

  在校學生
  如果你是正在修讀電腦資訊相關科系的大學生,也許你正在選修程式語言,課程結束發現自己只能寫出命令列下黑螢幕顯示的小程式,你也許很期待學到更多的技術做出實際的專案,那麼本書就是為你準備的。書中的專案使用的是Java 語言,除了Lucene 和Elasticsearch 的使用之外,還穿插了Java SE、JavaWeb 的相關技術。

  Java 程式開發者
  如果你已是Java 程式開發者,想要掌握全文檢索相關技術卻不知道從哪裡入手,需要處理企業中的全文檢索業務卻沒有想法,你也許聽說過Lucene 或Elasticsearch,但是不知道怎樣快速入門,本書可以作為入門全文檢索、學習Lucene 和Elasticsearch 開發技術的參考書。

  搜尋引擎研發人員
  如果你是搜尋引擎開發者,本書中的實際案例和相關基礎知識可以作為參考資料,例如資訊檢索模型理論基礎、文件資訊取出、Lucene 應用案例、Elasticsearch Java API、Elasticsearch 叢集管理等。希望能以本書為媒介和大家共同探討和交流。

  ✤ 原始程式碼下載

  原始程式碼可在本公司官網下載,提供原書簡體中文版及繁體中文版兩版本,讀者在執行繁體中文版如果出現問題,可以使用原書之簡體中文程式碼。

  ✤ 勘誤與交流

  限於筆者功力及寫作時間有限,不可避免地會有些疏漏之處,歡迎大家透過電子郵件等方式批評指正。

  筆者的電子郵件:[email protected]
  筆者的部落格:blog.csdn.net/napoay

  ✤ 致謝

  本書能夠順利出版要感謝很多單位和個人。首先要感謝筆者的家人,他們對筆者學業的支援和生活的照顧使筆者沒有後顧之憂,全身心投入到本書的寫作當中。

  感謝北京博瑞開放原始碼有限公司,為筆者提供了寶貴的實習機會,本書的很多基礎知識都來自實際專案,是在解決實際問題過程中的經驗歸納,感謝董事長李小翔先生、架構師黃超對筆者的指導和幫助。

  感謝馬玉鵬老師、郎睿師兄、張港紅博士、CSDN 博主周程(blog.csdn.net/fxsdbt520)、秦雪箭、宗鵬、陸風光在本撰寫作過程中的幫助和支援。

  感謝清華大學出版社給筆者一次和大家分享技術、交流學習的機會,感謝王金柱編輯在本書出版過程的辛勤付出。

姚攀
網路書店 類別 折扣 價格
  1. 新書
    58
    $334
  2. 新書
    79
    $458
  3. 新書
    79
    $458
  4. 新書
    79
    $459
  5. 新書
    85
    $493
  6. 新書
    85
    $493
  7. 新書
    9
    $522
  8. 新書
    9
    $522