新書推薦:
《
560种野菜野果鉴别与食用手册
》
售價:NT$
305.0
《
中国官僚政治研究(一部洞悉中国政治制度演变的经典之作)
》
售價:NT$
286.0
《
锂电储能产品设计及案例详解
》
售價:NT$
505.0
《
首辅养成手册(全三册)(张晚意、任敏主演古装剧《锦绣安宁》原著小说)
》
售價:NT$
551.0
《
清洁
》
售價:NT$
296.0
《
组队:超级个体时代的协作方式
》
售價:NT$
352.0
《
第十三位陪审员
》
售價:NT$
245.0
《
微观经济学(第三版)【2024诺贝尔经济学奖获奖者作品】
》
售價:NT$
709.0
|
內容簡介: |
Elasticsearch搜索集群系统在生产和生活中发挥着越来越重要的作用。本书介绍了Elasticsearch的使用、原理、系统优化与扩展应用。本书用例子说明了Java、Python、Scala和PHP的编程API,其中在Java搜索界面实现上,介绍了使用Spring实现微服务开发。为了扩展Elasticsearch的功能,本书以中文分词和英文文本分析为例介绍了插件开发方法。本书介绍了使用Elasticsearch作为数据管理平台的日志监控与分析方法,介绍了使用OCR从图像中提取文本以及问答式搜索的开发方法。
|
關於作者: |
猎兔搜索技术创始人曾经担任国防大学科研处 技术顾问工信部 舆情开发顾问东南大学 社会导师首都师范大学 金融课程讲师北京石油化工学院 社会导师北大光华管理学院 技术顾问蓝汛公司搜索集群技术咨询顾问新东方 创新研究院 研究员
|
目錄:
|
第1章使用Elasticsearch1
1.1基本概念1
1.2安装2
1.3搜索集群5
1.4创建索引6
1.5使用Java客户端接口9
1.5.1创建索引11
1.5.2增加、删除与修改数据14
1.5.3分析器16
1.5.4数据导入17
1.5.5通过摄取快速导入数据17
1.5.6索引库结构17
1.5.7查询18
1.5.8区间查询22
1.5.9排序23
1.5.10分布式搜索23
1.5.11过滤器24
1.5.12高亮显示24
1.5.13分页25
1.5.14通过聚合实现分组查询26
1.5.15文本列的聚合27
1.5.16遍历数据28
1.5.17索引文档29
1.5.18Percolate29
1.6RESTClient30
1.6.1使用摄取31
1.6.2代码实现摄取33
1.7使用Jest33
1.8Python客户端37
1.9Scala客户端40
1.10PHP客户端43
1.11SQL支持44
1.12本章小结48
第2章开发插件49
2.1搜索中文49
2.1.1中文分词原理49
2.1.2中文分词插件原理51
2.1.3开发中文分词插件53
2.1.4中文AnalyzerProvider55
2.1.5字词混合索引57
2.2搜索英文60
2.2.1句子切分60
2.2.2标注词性62
2.3使用测试套件64
2.4本章小结68
第3章管理搜索集群69
3.1节点类型69
3.2管理集群69
3.3写入权限控制70
3.4使用X-Pack71
3.5快照72
3.6Zen发现机制73
3.7联合搜索74
3.8缓存74
3.9本章小结75
第4章源码分析76
4.1Lucene源码分析76
4.1.1Ivy管理依赖项76
4.1.2源码结构介绍76
4.2Gradle77
4.3Guice77
4.4Joda-Time79
4.5Transport80
4.6线程池80
4.7模块80
4.8Netty81
4.9分布式81
4.10本章小结82
第5章搜索相关性83
5.1BM25检索模型83
5.1.1使用BM25检索模型86
5.1.2参数调优86
5.2学习评分86
5.2.1基本原理87
5.2.2准备数据87
5.2.3Elasticsearch学习排名89
5.3本章小结91
第6章搜索引擎用户界面92
6.1JSP实现搜索界面92
6.1.1用于显示搜索结果的自定义标签93
6.1.2使用Listlib98
6.1.3实现翻页100
6.2使用Spring实现的搜索界面102
6.2.1实现REST搜索界面102
6.2.2REST API中的HTTP PUT104
6.2.3Spring-data-elasticsearch106
6.2.4Spring HATEOAS112
6.3实现搜索接口113
6.3.1编码识别113
6.3.2布尔搜索116
6.3.3搜索结果排序116
6.4实现相似文档搜索117
6.5实现AJAX搜索联想词119
6.5.1估计查询词的文档频率119
6.5.2搜索联想词总体结构119
6.5.3服务器端处理120
6.5.4浏览器端处理125
6.5.5拼音提示127
6.5.6部署总结127
6.5.7Suggester128
6.6推荐搜索词129
6.6.1挖掘相关搜索词130
6.6.2使用多线程计算相关搜索词132
6.7查询意图理解133
6.7.1拼音搜索133
6.7.2无结果处理133
6.8集成其他功能134
6.8.1拼写检查134
6.8.2分类统计135
6.8.3相关搜索141
6.8.4再次查找144
6.8.5搜索日志144
6.9查询分析146
6.9.1历史搜索词记录146
6.9.2日志信息过滤147
6.9.3信息统计148
6.9.4挖掘日志信息150
6.9.5查询词意图分析150
6.10部署网站150
6.10.1部署到Web服务器151
6.10.2防止攻击152
6.11本章小结156
第7章 OCR文字识别157
7.1Tesseract157
7.2使用TensorFlow识别文字161
7.3OpenCV164
7.3.1预处理166
7.3.2文字区域提取169
7.3.3纠正偏斜171
7.3.4Linux环境支持172
7.4JavaCV172
7.5本章小结174
第8章 问答式搜索176
8.1生成表示语义的代码176
8.2信息整合181
8.2.1实体对齐181
8.2.2编辑距离181
8.2.3Jaro-Winkler距离187
8.2.4比较器189
8.2.5Cleaner189
8.2.6运行过程190
8.2.7遗传算法调整参数192
8.3自动问答193
8.3.1问句处理器193
8.3.2自动发现答案198
8.4本章小结199
第9章 Elastic系统监控201
9.1Logstash201
9.1.1使用Logstash201
9.1.2插件203
9.1.3数据库输入插件206
9.2Filebeat207
9.3消息过期208
9.4Kibana208
9.5Flume209
9.6Kafka210
9.7Graylog211
9.8物联网数据215
9.9本章小结216
|
內容試閱:
|
智慧生物的大规模协作造就了惊人的进化奇迹。大规模机器集群造就机器系统进化成为强大的智能系统。Elasticsearch作为大数据与搜索引擎技术的结合体,随着社会对大规模开源分布式搜索引擎的需求迅速成长。
由于其良好的易用性,Elasticsearch早在1.0版本之前就加速了大规模搜索集群的普及。本书从基本概念开始熟悉Elasticsearch,接下来介绍了Elasticsearch在Windows和Linux操作系统下的安装。除了CURL命令,本书还介绍了使用常用的编程工具和Elasticsearch搜索服务交互,包括Java、Python、Scala和PHP,以及使用SQL语句查询Elasticsearch索引的方法。自然语言文本理解往往以插件形式存在于Elasticsearch集群中,第2章介绍了如何开发与测试插件。因为Elasticsearch经常用于实时搜索或分析,所以性能优化很重要,第3章介绍了如何管理Elasticsearch集群。为了更合理地使用和扩展Elasticsearch,第4章简单分析了github中托管的Elasticsearch源代码。对于搜索引擎来说,返回结果的相关性是一个重要的话题,第5章讨论了这个问题。第6章介绍了使用Java开发搜索引擎Web用户界面的几种方法。
随着人工智能领域技术的发展,让搜索引擎智能加速变成现实。智能搜索引擎需要能够检测到并识别出图像中的文字,第7章介绍了结合OpenCV使用Tesseract识别文字的方法。第8章介绍了根据问题返回搜索结果的问答式搜索。
目前Elasticsearch是实时系统监控的首选,第9章介绍了使用Elasticsearch监控与分析日志,也介绍了通过物联网监控系统的方案。
本书相关的参考软件和代码在读者QQ群471033528的附件中可以找到。Elasticsearch及其底层依赖的软件,其复杂程度已经超越了一个人所能掌握的程度。一些具体的细节也可以在读者QQ群中讨论。感谢早期合著者、合作伙伴、员工、学员、读者的支持,给我们提供了良好的工作基础。就像玻璃容器中的水培植物一样,这是一个持久可用的工作基础。技术的融合与创新无止境,欢迎读者一起探索。
本书适合需要具体实现搜索引擎的程序员使用,对于信息检索等相关领域的研究人员也有一定的参考价值,同时猎兔搜索技术团队已经开发出以本书为基础的专门培训课程和商业软件。
参与本书编写的还有张子宪、崔智杰、张晓斐、石天盈、张继红、张进威、刘宇、何淑琴、任通通、高丹丹、徐友峰、孙宽,在此一并表示感谢。
|
|