首页>参考读物>计算机科学与技术>综合

Elasticsearch搜索引擎开发实战
作者 : 罗刚 张子宪 编著
出版日期 : 2018-07-25
ISBN : 978-7-111-60348-1
定价 : 69.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 252
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书考虑到Elasticsearch在工程中的实际应用,介绍使用Elasticsearch开发支持中文和英文搜索引擎,实现系统监控。
本书分为8章,内容涵盖了Elasticsearch开发搜索引擎、开发中文搜索引擎、Mapping详解、源代码分析、提高搜索相关性、使用SpringBoot开发搜索界面、管理Elasticsearch集群和具体的案例分析。
本书可以作为软件工程师学习参考书,也可以作为高等院校信息检索课程的教学参考书,或者SEO搜索引擎优化,搜索引擎用户的参考书。

图书前言

搜索引擎在人们的日常生活中发挥着越来越重要的作用。随着开源软件的普及与发展,涌现出了许多优秀的搜索软件,如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,搜索到本书,然后在页面上的“资料下载”模块下载即可。
本书作者
本书由罗刚主笔编写,其他参与编写的人员有张子宪、沙芸、柳若边、崔智杰、石天盈、张继红、罗庭亮。
在此感谢我的家人、同事及所有在本书写作过程中提供过帮助的人!另外,本书在编写过程中参考了一些开源代码,在此对相关作者也一并表示感谢!
虽然我们对书中所述内容都尽量核实,并进行了多次校对,但由于写作时间仓促,加之作者水平所限,书中可能还存在疏漏和错误之处,恳请广大读者批评、指正。联系我们,请发电子邮件到hzbook2017@163.com。

罗刚
于北京

上架指导

计算机\程序设计

封底文字

本书结合Elasticsearch在工程中的实际应用,详细介绍了使用Elasticsearch开发支持中文和英文搜索引擎的相关技术,从而实现系统监控。
本书共分为8章,内容涵盖了Elasticsearch搜索引擎开发的环境安装与配置,实现一个简单的网站搜索;开发中文搜索引擎;Mapping详解;源代码分析;提高搜索相关性;使用Spring Boot开发搜索界面;使用Elasticsearch和相关软件实现系统监控;搜索引擎开发案例分析。本书非常适合信息检索技术爱好者、搜索引擎开发人员和搜索引擎优化(SEO)人员阅读,也适合作为高等院校信息检索课程的教材或教学参考书。

图书目录

前言
第1章 Elasticsearch开发搜索引擎应用 1
1.1 搜索引擎开发需求 1
1.2 准备开发环境 1
1.2.1 Windows命令行cmd 1
1.2.2 在Windows下使用Java 3
1.2.3 Linux终端 5
1.2.4 在Linux下使用Java 9
1.2.5 Eclipse集成开发环境 10
1.3 了解Elasticsearch 10
1.3.1 JSON数据格式 11
1.3.2 Elasticsearch基本概念 12
1.3.3 HTTP协议 13
1.4 Elasticsearch安装和配置 16
1.4.1 安装Elasticsearch 16
1.4.2 运行Elasticsearch作为服务进程 19
1.5 实现一个简单的网站搜索 21
1.5.1 定义索引结构 23
1.5.2 导入数据 26
1.5.3 查询API 27
1.5.4 实现搜索界面 29
1.6 本章小结 35
第2章 开发中文搜索引擎 36
2.1 中文分词原理 36
2.1.1 最长匹配方法 36
2.1.2 自己写分析器 42
2.1.3 概率语言模型的分词方法 44
2.1.4 中文分词插件原理 52
2.1.5 开发中文分词插件 54
2.1.6 支持Elasticsearch的插件 57
2.1.7 中文分析器提供者 59
2.1.8 字词混合索引 61
2.2 提高分词准确度 63
2.3 本章小结 65
第3章 Mapping详解 66
3.1 索引模式 66
3.1.1 创建模式 66
3.1.2 修改模式 68
3.2 Mapping数据类型 69
3.3 Mapping参数 70
3.4 动态Mapping 71
3.4.1 使用动态Mapping 72
3.4.2 实现原理 72
3.5 本章小结 74
第4章 深入源码分析 75
4.1 Lucene源码分析 75
4.1.1 使用Lucene 75
4.1.2 Ivy管理依赖项 77
4.1.3 源码结构介绍 77
4.1.4 并发控制 82
4.2 启动搜索服务 88
4.3 Guice框架 89
4.4 日期和时间库——Joda-Time 91
4.5 Transport模块 91
4.6 线程池 92
4.7 模块 93
4.8 Netty通信框架 93
4.9 缓存 94
4.10 分布式 95
4.11 Zen发现机制 95
4.12 联合搜索 97
4.13 JVM字节码 98
4.13.1 编译代码 99
4.13.2 同步相关指令 99
4.14 本章小结 100
第5章 提高搜索相关性 102
5.1 向量空间检索模型 102
5.2 BM25检索模型 105
5.2.1 使用BM25检索模型 108
5.2.2 参数调优 108
5.3 学习评分 109
5.3.1 基本原理 109
5.3.2 准备数据 110
5.3.3 Elasticsearch学习排名 112
5.4 查询意图识别 112
5.5 图像特征提升检索体验 113
5.6 本章小结 116
第6章 搜索界面开发 118
6.1 使用Searchkit实现搜索界面 118
6.2 Spring Boot入门 122
6.2.1 可执行的WAR 125
6.2.2 spring-boot-devtools模块实现热部署 136
6.3 Java模板引擎Pebble介绍 136
6.4 通过Spring-data-elasticsearch 项目访问Elasticsearch 141
6.5 REST基本概念 149
6.6 使用Vue.js开发搜索界面 154
6.7 使用Vue.js Paginator插件实现翻页 157
6.8 实现搜索接口 161
6.8.1 编码识别 161
6.8.2 布尔搜索 163
6.8.3 搜索结果重定向 164
6.8.4 搜索结果排序 165
6.8.5 实现相似文档搜索 166
6.9 Suggester搜索词提示 167
6.9.1 拼音提示 169
6.9.2 部署总结 169
6.9.3 相关搜索 170
6.9.4 再次查找 172
6.9.5 搜索日志 172
6.10 Word2vec挖掘相关搜索词 174
6.11 部署网站 179
6.11.1 部署到Web服务器 179
6.11.2 防止攻击 181
6.12 使用Rust开发搜索界面 184
6.13 本章小结 184
第7章 Elastic栈系统监控 186
7.1 管理Elasticsearch集群 186
7.1.1 写入权限控制 187
7.1.2 使用X-Pack 188
7.1.3 快照 189
7.2 Logstash数据处理工具 190
7.2.1 使用Logstash 190
7.2.2 插件 192
7.2.3 数据库输入插件 192
7.2.4 开发插件 193
7.3 Filebeat文件收集器 193
7.4 消息过期 194
7.5 Kibana可视化平台 195
7.6 Flume日志收集系统 196
7.7 Kafka分布式流平台 197
7.8 Graylog日志管理平台 198
7.9 本章小结 202
第8章 案例分析 204
8.1 双语句对搜索 204
8.1.1 爬虫抓取双语句对 204
8.1.2 英文分词 205
8.1.3 句子切分 205
8.1.4 标注词性 207
8.1.5 词对齐 209
8.1.6 索引数据 213
8.2 内容管理系统站内检索 214
8.2.1 MySQL数据库 214
8.2.2 RESTful API管理索引 215
8.2.3 自动客服机器人 217
8.3 搜索文档 225
8.3.1 爬虫抓取信息 225
8.3.2 在Linux下使用.NET 233
8.3.3 NEST客户端 235
8.4 本章小结 239
参考文献 240

教学资源推荐
作者: 王卫红 李晓明 编著
作者: [美]丹尼尔·A.弗莱施(Daniel A. Fleisch)著
参考读物推荐
作者: 郑志强 骆军 罗曦 编著
作者: 尚艺科技 编著
作者: [爱尔兰] 乔·米尼奇诺(Joe Minichino) [加] 约瑟夫·豪斯(Joseph Howse) 著