1. 程式人生 > >Elasticsearch 搜尋引擎開發實戰

Elasticsearch 搜尋引擎開發實戰

內容簡介

本書結合 Elasticsearch 在工程中的實際應用,詳細介紹了使用 Elasticsearch 開發支援中文和英文搜尋引擎的相關技術,從而實現系統監控。

本書共分為8章,內容涵蓋了 Elasticsearch 搜尋引擎開發的環境安裝與配置;實現一個簡單的網站搜尋;開發中文搜尋引擎;Mapping 詳解;原始碼分析;提高搜尋相關性;使用 Spring Boot 開發搜尋介面;使用 Elasticsearch 和相關軟體實現系統監控;搜尋引擎開發案例分析。

本書非常適合資訊檢索技術愛好者、搜尋引擎開發人員和搜尋引擎優化(SEO)人員閱讀,也適合作為高等院校資訊檢索課程的教材或教學參考書。

enter image description here

本書內容

前言

搜尋引擎在人們的日常生活中發揮著越來越重要的作用。隨著開源軟體的普及與發展,湧現出了許多優秀的搜尋軟體,如 Elasticsearch、Solr 等。其中,Elasticsearch 以大規模分散式搜尋見長,而 Solr 則以分面搜尋見長。

本書選擇 Elasticsearch 作為實現搜尋引擎的工具。Elasticsearch 具有強大的分散式搜尋和視覺化功能,不僅豐富了實現搜尋引擎的方法,而且還使複雜抽象的資料結構與演算法變得直觀而鮮活,因此在國外被迅速地引入到人工智慧的相關課程中。

本書全面、系統地介紹了分散式搜尋引擎的相關內容及 Elasticsearch 中的 Java 程式碼實現。本書內容既注重基礎知識,又非常注重實踐,每章都提供了大量的例項程式。讀者可以通過這些例項快速上手,並迅速提高搜尋引擎開發技術。通過對本書內容的學習,讀者不僅可以掌握搜尋引擎開發的基本知識,而且還可以靈活地將 Elasticsearch 運用到解決實際問題當中,從而提升工作效率。

本書特色

1.內容全面,結構合理

本書首先介紹了 Elasticsearch 的安裝和基本使用方法,然後介紹了從搜尋到內容監控等方方面面的知識。在內容安排上,本書根據讀者的認知規律對學習梯度做了合理安排,降低了學習難度。

2.講解詳盡,例項豐富

本書對每個技術要點都做了細緻入微的介紹,並且在講解的過程中提供了豐富的例項,而且每個例項都經過精挑細選,具有很強的針對性,特別是本書最後的應用案例,更是對相關技術的一個全面應用。另外,書中所有例項的實現程式碼都考慮了通用性,讀者可以直接將程式碼移植過來加以修改,即可解決自己的實際問題。

3.語言通俗,圖文並茂

本書用通俗易懂的語言進行講解,儘量避免生疏的專業術語。在講解一些重要知識點時,書中給出了大量的圖示及例項執行結果,幫助讀者更加直觀、高效地理解所學內容。

4.提供配套教學 PPT,使學習更高效

為了便於讀者高效、直觀地學習本書內容,作者特意針對每章的重點內容製作了教學 PPT,這些 PPT 和本書的例項原始檔都會免費提供給讀者下載。

本書內容

本書共分8章,具體內容介紹如下:

第1章 Elasticsearch 開發搜尋引擎應用,主要介紹了搜尋引擎開發方面的一些基礎知識和 Elasticsearch 開發環境的安裝,並對 Java API 與 Elasticsearch 搜尋叢集的互動也做了介紹。

第2章開發中文搜尋引擎,主要介紹了中文搜尋引擎開發的相關內容,包括中文分詞原理和中文分詞外掛開發等。

第3章 Mapping 詳解,主要介紹了 Mapping 概念及如何使用 Mapping,包括 Mapping 索引、Mapping 資料型別、Mapping 引數和動態 Mapping 等。

第4章深入原始碼分析,詳細分析了 Elasticsearch 原始碼,主要內容包括 Lucene 原始碼分析、啟動搜尋服務、Guice 框架、日期和時間庫、Transport 模組、執行緒池、模組、Netty 通訊框架、快取、分散式、Zen 發現機制、聯合搜尋和 JVM 位元組碼等。

第5章提高搜尋相關性,主要介紹了向量空間檢索模型、BM25 檢索模型、學習評分、查詢意圖識別和影象特徵提升檢索體驗等內容。

第6章搜尋介面開發,涵蓋的主要內容包括使用 Searchkit 實現搜尋介面;Spring Boot 入門;Java 模板引擎 Pebble 介紹;通過 Spring-data-elasticsearch 專案訪問 Elasticsearch;REST 基本概念;使用 Vue.js 開發搜尋介面;使用 Vue.js Paginator 外掛實現翻頁;實現搜尋介面;Suggester 搜尋詞提示;Word2vec 挖掘相關搜尋詞;部署網站;使用 Rust 開發搜尋介面等。

第7章 Elastic 棧系統監控,主要介紹了使用 Elasticsearch 和相關軟體實現系統監控,包括管理 Elasticsearch 叢集、Logstash 資料處理工具、Filebeats 檔案收集器、訊息過期、Kibana 視覺化平臺、Flume 日誌收集系統、Kafka 分散式流平臺和 Graylog 日誌管理平臺等內容。

第8章案例分析,主要介紹了雙語句對搜尋、內容管理系統站內檢索,以及使用 Elasticsearch 搜尋公開的藥物臨床試驗專案資訊等幾個案例。

本書讀者物件

  • 資訊檢索技術愛好者;

  • 搜尋引擎開發人員;

  • 搜尋引擎優化(SEO)人員;

  • 從事演算法研究的技術人員;

  • 高等院校理工科專業的學生和老師。

本書配套資源及獲取方式

為了方便讀者高效學習,本書特意提供了以下配套資源:

  • 本書配套教學 PPT;

  • 本書原始碼檔案;

  • 本書涉及的一些開發工具的安裝包。

這些配套資源需要讀者自行下載,請登入機械工業出版社華章公司的網站 www.hzbook.com,搜尋到本書,然後在頁面上的“資料下載”模組下載即可。

本書作者

本書由羅剛主筆編寫,其他參與編寫的人員有張子憲、沙芸、柳若邊、崔智傑、石天盈、張繼紅、羅庭亮。

在此感謝我的家人、同事及所有在本書寫作過程中提供過幫助的人!另外,本書在編寫過程中參考了一些開原始碼,在此對相關作者也一併表示感謝!

雖然我們對書中所述內容都儘量核實,並進行了多次校對,但由於寫作時間倉促,加之作者水平所限,書中可能還存在疏漏和錯誤之處,懇請廣大讀者批評、指正。聯絡我們,請發電子郵件到 [email protected]

羅剛

於北京

第1章 Elasticsearch 開發搜尋引擎應用(上)
第1章 Elasticsearch 開發搜尋引擎應用(下)
第2章 開發中文搜尋引擎(上)
第2章 開發中文搜尋引擎(下)
第3章 Mapping 詳解
第4章 深入原始碼分析(上)
第4章 深入原始碼分析(下)
第5章 提高搜尋相關性
第6章 搜尋介面開發(上)
第6章 搜尋介面開發(中)
第6章 搜尋介面開發(下)
第7章 Elastic 棧系統監控(上)
第7章 Elastic 棧系統監控(下)
第8章 案例分析(上)
第8章 案例分析(下)
參考文獻

閱讀全文: http://gitbook.cn/gitchat/geekbook/5c258ea14fcd483b0265b079