深入理解 ElasticSearch 深入理解ElasticSearch
拉斐爾·酷奇 (Rafaol Kuc), 馬雷克·羅戈任斯基 (Marek Rogozinski)
- 出版商: 機械工業
- 出版日期: 2016-01-01
- 定價: $414
- 售價: 8.5 折 $352
- 語言: 簡體中文
- 頁數: 250
- 裝訂: 平裝
- ISBN: 7111524160
- ISBN-13: 9787111524168
-
相關分類:
全文搜尋引擎 Full-text-search
下單後立即進貨 (約4週~6週)
買這商品的人也買了...
-
$620$490 -
$680$578 -
$780$616 -
$780$616 -
$360$284 -
$620$484 -
$500$395 -
$490$417 -
$690$538 -
$403奔跑吧Ansible
-
$680$537 -
$280$218 -
$199自製搜尋引擎
-
$403ELKstack 權威指南
-
$520$411 -
$354$336 -
$580$458 -
$560$437 -
$520$411 -
$352Ansible自動化運維技術與最佳實踐
-
$354$336 -
$560$476 -
$560$476 -
$301Docker容器:利用Kubernetes、Flannel、Cockpit和Atomic構建和部署
-
$500$395
相關主題
商品描述
<內容簡介>
第1章介紹ApacheLucene的工作方式、ElasticSearch的基本概念。第2章描述Lucene評分機制、如何進行查詢重寫,另外還介紹ElasticSearch的批處理API及如何使用過濾器來優化查詢。第3章描述如何修改Lucene評分,如何使用不同的倒排索引格式來改變索引字段的結構。第4章闡述如何選擇恰當的索引分片、路由工作機制、索引分片機制。第5章介紹如何為具體應用選擇正確的目錄實現,同時闡述發現、網關、恢復模塊及其配置方式,以及調優ElasticSearch的緩存機制。第6章介紹JVM垃圾收集的工作原理、重要性以及如何調優,還介紹如何控制ElasticSearch的I/O操作數量和如何診斷ElasticSearch中的問題。第7章介紹幫助修正查詢中的拼寫錯誤以及構建高效的自動完成機制——查詢建議,還通過實際的案例展示如何通過使用不同查詢類型和ElasticSearch的其他功能來提高查詢相關性。第8章重點闡釋ElasticSearch的JAVAAPI。第9章通過演示如何開發你自己的河流和語言處理插件來介紹ElasticSearch的插件開發。
<章節目錄>
譯者序
前言
致謝
作者簡介
評審者簡介
第1章ElasticSearch簡介1
1.1Apache Lucene簡介1
1.1.1熟悉Lucene2
1.1.2Lucene的總體架構2
1.1.3分析你的數據3
1.1.4Lucene查詢語言4
1.2ElasticSearch簡介6
1.2.1ElasticSearch的基本概念7
1.2.2ElasticSearch架構背後的關鍵概念8
1.2.3ElasticSearch的工作流程9
1.3小結13
第2章查詢DSL進階14
2.1Apache Lucene默認評分公式解釋14
2.1.1何時文檔被匹配上15
2.1.2TF/IDF評分公式15
2.1.3ElasticSearch如何看評分16
2.2查詢改寫17
2.2.1前綴查詢範例17
2.2.2回顧Apache Lucene19
2.2.3查詢改寫的屬性20
2.3二次評分21
2.3. 1理解二次評分21
2.3.2範例數據21
2.3.3查詢22
2.3.4二次評分查詢的結構22
2.3.5二次評分參數配置23
2.3.6小結24
2.4批量操作24
2.4.1批量取24
2.4.2批量查詢26
2.5排序27
2.5.1基於多值字段的排序28
2.5.2基於多值geo字段的排序28
2.5.3基於嵌套對象的排序30
2.6數據更新API31
2.6.1簡單字段更新31
2.6.2使用腳本按條件更新32
2.6.3使用更新API創建或刪除文檔33
2.7使用過濾器優化查詢33
2.7.1過濾器與緩存34
2.7.2詞項查找過濾器36
2.8ElasticSearch切麵機制中的過濾器與作用域40
2.8.1範例數據40
2.8.2切麵計算和過濾41
2.8.3過濾器作為查詢的一部分42
2.8.4切麵過濾器44
2.8.5全局作用域45
2.9小結47
第3章底層索引控制48
3.1改變Apache Lucene的評分方式48
3.1.1可用的相似度模型49
3.1.2為每字段配置相似度模型49
3.2相似度模型配置50
3.2.1選擇默認的相似度模型51
3.2.2配置被選用的相似度模型52
3.3使用編解碼器53
3.3.1簡單使用範例53
3.3.2工作原理解釋54
3.3.3可用的倒排表格式55
3.3.4配置編解碼器56
3.4準實時、提交、更新及事務日誌58
3.4.1索引更新及更新提交59
3.4.2事務日誌60
3.4.3準實時讀取62
3.5深入理解數據處理62
3.5.1輸入並不總是進行文本分析62
3.5.2範例的使用65
3.5.3索引期更換分詞器67
3.5.4搜索時更換分析器68
3.5.5陷阱與默認分析68
3.6控制索引合併68
3.6.1選擇正確的合併策略69
3.6. 2合併策略配置70
3.6.3調度72
3.7小結73
第4章分佈式索引架構74
4.1選擇合適的分片和副本數74
4.1.1分片和過度分配75
4.1.2一個過度分配的正面例子75
4.1.3多分片與多索引76
4.1.4副本76
4.2路由76
4.2.1分片和數據77
4.2.2測試路由功能77
4.2.3索引時使用路由80
4.2.4別名83
4.2.5多個路由值83
4.3調整默認的分片分配行為84
4.3.1分片分配器簡介84
4.3.2even_shard分片分配器84
4.3.3balanced分片分配器85
4.3.4自定義分片分配器85
4.3.5裁決者86
4.4調整分片分配88
4.4.1部署意識89
4.4.2過濾91
4.4.3運行時更新分配策略92
4.4.4確定每個節點允許的總分片數93
4.4.5更多的分片分配屬性96
4.5查詢執行偏好97
4.6應用我們的知識99
4.6.1基本假定99
4.6.2配置100
4.6.3變化來了104
4.7小結105
第5章管理ElasticSearch106
5.1選擇正確的目錄實現—存儲模塊106
5.2發現模塊的配置109
5.2.1Zen發現109
5.2.2亞馬遜EC2發現111
5.2.3本地網關114
5.2.4恢復配置115
5.3索引段統計116
5.3.1segmentsAPI簡介116
5.3.2索引段信息的可視化118
5.4理解ElasticSearch緩存119
5.4.1過濾器緩存119
5.4.2字段數據緩存121
5.4.3清除緩存126
5.5小結127
第6章故障處理129
6.1瞭解垃圾回收器129
6.1.1Java內存130
6.1.2處理垃圾回收問題131
6.1.3在類UNIX系統中避免內存交換135
6.2關於I/O調節136
6.2.1控制IO節流136
6.2.2配置136
6.3用預熱器提升查詢速度138
6.3.1為什麼使用預熱器138
6.3.2操作預熱器138
6.3.3測試預熱器141
6.4熱點線程144
6.4.1澄清熱點線程API的用法誤區145
6.4.2熱點線程API的響應信息145
6.5現實場景146
6.5. 1越來越差的性能146
6.5.2混雜的環境和負載不平衡148
6.5.3我的服務器出故障了149
6.6小結150
第7章改善用戶搜索體驗151
7.1改正用戶拼寫錯誤151
7.1.1測試數據152
7.1.2深入技術細節152
7.1.3completion suggester168
7.2改善查詢相關性172
7.2.1數據172
7.2.2改善相關性的探索之旅174
7.3小結188
第8章ElasticSearch Java API189
8.1ElasticSearch Java API簡介189
8.2代碼190
8.3連接到集群191
8.3.1成為ElasticSearch節點191
8.3.2使用傳輸機連接方式192
8.3.3選擇合適的連接方式193
8.4API剖析194
8.5CRUD操作195
8.5.1讀取文檔195
8.5. 2索引文檔197
8.5.3更新文檔199
8.5.4刪除文檔201
8.6ElasticSearch查詢203
8.6.1準備查詢請求203
8.6.2構造查詢203
8.6.3分頁206
8.6.4排序207
8.6.5過濾207
8.6. 6切麵計算208
8.6.7高亮209
8.6.8查詢建議209
8.6.9計數210
8.6.10滾動211
8.7批量執行多個操作211
8.7.1批量操作211
8.7.2根據查詢刪除文檔212
8.7.3Multi GET212
8.7.4Multi Search212
8.8Percolator213
8.9explain API214
8.10構造JSON格式的查詢和文檔214
8.11管理API216
8.11.1集群管理API216
8.11.2索引管理API219
8.12小結226
第9章開發ElasticSearch插件227
9.1建立ApacheMaven項目結構227
9.1.1瞭解基本知識228
9.1.2Maven Java項目的結構228
9.1.3POM的理念228
9.1.4運行構建過程229
9.1.5引入Maven裝配插件230
9.2創建一個自定義river插件232
9.2.1實現細節232
9.2.2測試river238
9.3創建自定義分析插件240
9.3.1實現細節240
9.3.2測試自定義分析插件247
9.4小結249
<作者介紹>
Rafa Ku是一個很有天資的團隊領袖及軟件開發人員,現任Sematext集團公司的諮詢專家及軟件工程師,專註於開源技術,如Apache Lucene、Solr、ElasticSearch和Hadoop stack等,擁有超過11年的軟件研發經驗,涉及領域廣闊,從銀行軟件到電子商務產品。他主要側重於Java平臺,但對能提高研發效率的任何其他工具或編程語言都抱有極高的熱情。同時他也是solr.pl網站的創始人之一,該網站致力於幫助人們解決Solr和Lucene的相關問題。他還是世界範圍內各種會議熱邀的演講嘉賓,曾受邀出席過Lucene Eurocon、Berlin Buzzwords、ApacheCon、Lucene Revolution等會議。
Rafa最早於2002年接觸Lucene,一開始他並不喜歡這個開源產品,然而在2003年再次使用Lucene時,他改變了自己的看法,並看到了搜索技術的巨大潛力,隨後Solr誕生了。Rafa於2010年開始使用ElasticSearch,目前主要關註Lucene、Solr、ElasticSearch和信息檢索等方面。
Rafa是《Solr 3.1 Cookbook》一書及其後續版本《Solr 4.0 Cookbook》的作者,同時也是Packt Publishing出版的所有版本的《ElasticSearch Server》的合著者之一。
Marek Rogoziński是一個有著10多年經驗的軟件架構師和諮詢師,專註基於開源搜索引擎(如Solr、ElasticSearch等)的解決方案和大數據分析技術(Hadoop、HBase、Twitter Storm等)。
他是solr.pl網站的聯合創始人之一,該網站致力於提供Solr和Lucene的相關資訊,同時他也是Packt Publishing出版的《ElasticSearch Server》的作者之一。
Marek Rogoziński還是一家提供流式大數據處理和分析產品的公司的CTO。