猜你喜欢
Elasticsearch搜索引擎开发实战

Elasticsearch搜索引擎开发实战

书籍作者:罗刚 张子宪 ISBN:9787111603481
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:9452
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介
本书结合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,搜索到本书,然后在页面上的“资料下载”模块下载即可。
本书作者本书由罗刚主笔编写,其他参与编写的人员有张子宪、沙芸、柳若边、崔智杰、石天盈、张继红、罗庭亮。
在此感谢我的家人、同事及所有在本书写作过程中提供过帮助的人!另外,本书在编写过程中参考了一些开源代码,在此对相关作者也一并表示感谢!
虽然我们对书中所述内容都尽量核实,并进行了多次校对,但由于写作时间仓促,加之作者水平所限,书中可能还存在疏漏和错误之处,恳请广大读者批评、指正。联系我们,请发电子邮件到[email protected]
罗刚于北京
目录
目 录
前言
第1章 Elasticsearch开发搜索引擎应用1
1.1 搜索引擎开发需求1
1.2 准备开发环境1
1.2.1 Windows命令行cmd1
1.2.2 在Windows下使用Java3
1.2.3 Linux终端5
1.2.4 在Linux下使用Java9
1.2.5 Eclipse集成开发环境10
1.3 了解Elasticsearch10
1.3.1 JSON数据格式11
1.3.2 Elasticsearch基本概念12
1.3.3 HTTP协议13
1.4 Elasticsearch安装和配置16
1.4.1 安装Elasticsearch16
1.4.2 运行Elasticsearch作为服务进程19
1.5 实现一个简单的网站搜索21
1.5.1 定义索引结构23
1.5.2 导入数据26
1.5.3 查询API27
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 动态Mapping71
3.4.1 使用动态Mapping72
3.4.2 实现原理72
3.5 本章小结74
第4章 深入源码分析75
4.1 Lucene源码分析75
4.1.1 使用Lucene75
4.1.2 Ivy管理依赖项77
4.1.3 源码结构介绍77
4.1.4 并发控制82
4.2 启动搜索服务88
4.3 Guice框架89
4.4 日期和时间库——Joda-Time91
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 可执行的WAR125
6.2.2 spring-boot-devtools模块实现热部署136
6.3 Java模板引擎Pebble介绍136
6.4 通过Spring-data-elasticsearch 项目访问Elasticsearch141
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-Pack188
7.1.3 快照189
7.2 Logstash数据处理工具190
7.2.1 使用Logstash190
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下使用.NET233
8.3.3 NEST客户端235
8.4 本章小结239
参考文献240
短评

读了一边,知识点零碎,不成体系,阅读体验很差,和看别人博客没什么区别,书也太薄了,一些原理春秋笔法带过,不懂的人看不懂,懂的人看了用处不大,书的感觉更像是作者的学习笔记?

2018-08-21

标签
博客合集,不好