Elasticsearch大数据搜索引擎pdf下载

Elasticsearch大数据搜索引擎百度网盘pdf下载

作者:
简介:Elasticsearch大数据搜索引擎
出版社:电子工业出版社
出版时间:2018-01-01
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

编辑推荐
  介绍Elasticsearch大数据搜索引擎的常见应用场景、原理与深入开发。主要包括支持中英文文本分析的自然语言处理搜索、问答式搜索和Elastic栈日志分析。
内容简介
  Elasticsearch搜索集群系统在生产和生活中发挥着越来越重要的作用。本书介绍了Elasticsearch的使用、原理、系统优化与扩展应用。本书用例子说明了Java、Python、Scala和PHP的编程API,其中在Java搜索界面实现上,介绍了使用Spring实现微服务开发。为了扩展Elasticsearch的功能,本书以中文分词和英文文本分析为例介绍了插件开发方法。本书介绍了使用Elasticsearch作为数据管理平台的日志监控与分析方法,介绍了使用OCR从图像中提取文本以及问答式搜索的开发方法。
作者简介
  猎兔搜索技术创始人
  曾经担任国防大学科研处 技术顾问
  工信部 舆情开发顾问
  东南大学 社会导师
  首都师范大学 金融课程讲师
  北京石油化工学院 社会导师
  北大光华管理学院 技术顾问
  蓝汛公司搜索集群技术咨询顾问
  新东方 创新研究院 研究员
目录
前言
第1章 使用Elasticsearch
1.1 基本概念
1.2 安装
1.3 搜索集群
1.4 创建索引
1.5 使用Java客户端接口
1.5.1 创建索引
1.5.2 增加、删除与修改数据
1.5.3 分析器
1.5.4 数据导入
1.5.5 通过摄取快速导入数据
1.5.6 索引库结构
1.5.7 查询
1.5.8 区间查询
1.5.9 排序
1.5.10 分布式搜索
1.5.11 过滤器
1.5.12 高亮显示
1.5.13 分页
1.5.14 通过聚合实现分组查询
1.5.15 文本列的聚合
1.5.16 遍历数据
1.5.17 索引文档
1.5.18 Percolate
1.6 RESTClient
1.6.1 使用摄取
1.6.2 代码实现摄取
1.7 使用Jest
1.8 Python客户端
1.9 Scala客户端
1.10 PHP客户端
1.11 SQL支持
1.12 本章小结
第2章 开发插件
2.1 搜索中文
2.1.1 中文分词原理
2.1.2 中文分词插件原理
2.1.3 开发中文分词插件
2.1.4 中文AnalyzerProvider
2.1.5 字词混合索引
2.2 搜索英文
2.2.1 句子切分
2.2.2 标注词性
2.3 使用测试套件
2.4 本章小结
第3章 管理搜索集群
3.1 节点类型
3.2 管理集群
3.3 写入权限控制
3.4 使用X-Pack
3.5 快照
3.6 Zen发现机制
3.7 联合搜索
3.8 缓存
3.9 本章小结
第4章 源码分析
4.1 Lucene源码分析
4.1.1 Ivy管理依赖项
4.1.2 源码结构介绍
4.2 Gradle
4.3 Guice
4.4 Joda-Time
4.5 Transport
4.6 线程池
4.7 模块
4.8 Netty
4.9 分布式
4.10 本章小结
第5章 搜索相关性
5.1 BM25检索模型
5.1.1 使用BM25检索模型
5.1.2 参数调优
5.2 学习评分
5.2.1 基本原理
5.2.2 准备数据
5.2.3 Elasticsearch学习排名
5.3 本章小结
第6章 搜索引擎用户界面
6.1 JSP实现搜索界面
6.1.1 用于显示搜索结果的自定义标签
6.1.2 使用Listlib
6.1.3 实现翻页
6.2 使用Spring实现的搜索界面
6.2.1 实现REST搜索界面
6.2.2 REST API中的HTTP PUT
6.2.3 Spring-data-elasticsearch
6.2.4 Spring HATEOAS
6.3 实现搜索接口
6.3.1 编码识别
6.3.2 布尔搜索
6.3.3 搜索结果排序
6.4 实现相似文档搜索
6.5 实现AJAX搜索联想词
6.5.1 估计查询词的文档频率
6.5.2 搜索联想词总体结构
6.5.3 服务器端处理
6.5.4 浏览器端处理
6.5.5 拼音提示
6.5.6 部署总结
6.5.7 Suggester
6.6 推荐搜索词
6.6.1 挖掘相关搜索词
6.6.2 使用多线程计算相关搜索词
6.7 查询意图理解
6.7.1 拼音搜索
6.7.2 无结果处理
6.8 集成其他功能
6.8.1 拼写检查
6.8.2 分类统计
6.8.3 相关搜索
6.8.4 再次查找
6.8.5 搜索日志
6.9 查询分析
6.9.1 历史搜索词记录
6.9.2 日志信息过滤
6.9.3 信息统计
6.9.4 挖掘日志信息
6.9.5 查询词意图分析
6.10 部署网站
6.10.1 部署到Web服务器
6.10.2 防止攻击
6.11 本章小结
第7章 OCR文字识别
7.1 Tesseract
7.2 使用TensorFlow识别文字
7.3 OpenCV
7.3.1 预处理
7.3.2 文字区域提取
7.3.3 纠正偏斜
7.3.4 Linux环境支持
7.4 JavaCV
7.5 本章小结
第8章 问答式搜索
8.1 生成表示语义的代码
8.2 信息整合
8.2.1 实体对齐
8.2.2 编辑距离
8.2.3 Jaro-Winkler距离
8.2.4 比较器
8.2.5 Cleaner
8.2.6 运行过程
8.2.7 遗传算法调整参数
8.3 自动问答
8.3.1 问句处理器
8.3.2 自动发现答案
8.4 本章小结
第9章 Elastic系统监控
9.1 Logstash
9.1.1 使用Logstash
9.1.2 插件
9.1.3 数据库输入插件
9.2 Filebeat
9.3 消息过期
9.4 Kibana
9.5 Flume
9.6 Kafka
9.7 Graylog
9.8 物联网数据
9.9 本章小结
前言
  智慧生物的大规模协作造就了惊人的进化奇迹。大规模机器集群造就机器系统进化成为强大的智能系统。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群中讨论。感谢早期合著者、合作伙伴、员工、学员、读者的支持,给我们提供了良好的工作基础。就像玻璃容器中的水培植物一样,这是一个持久可用的工作基础。技术的融合与创新无止境,欢迎读者一起探索。
  本书适合需要具体实现搜索引擎的程序员使用,对于信息检索等相关领域的研究人员也有一定的参考价值,同时猎兔搜索技术团队已经开发出以本书为基础的专门培训课程和商业软件。
  参与本书编写的还有张子宪、崔智杰、张晓斐、石天盈、张继红、张进威、刘宇、何淑琴、任通通、高丹丹、徐友峰、孙宽,在此一并表示感谢。
精彩书摘
  第1章 使用Elasticsearch
  在信息时代,可供获取的数据加速涌现,我们可以通过搜索引擎来挖掘大数据的价值,百度就是一个大的数据搜索引擎。
  Lucene 是一个 Java 语言开发的开源全文检索引擎工具包。Lucene 穿了一件json 的外衣,就是 Elasticsearch。Elasticsearch 内置了对分布式集群和分布式索引的管理,所以相对Solr来说,更容易分布式部署。使用Elasticsearch的搜索系统整体架构如图1-1所示。
  1.1 基本概念
  每一个运行实例称为一个节点,每一个运行实例既可以在同一个机器上,也可以在不同的机器上。
  在一个分布式系统里面,可以通过多个 Elasticsearch 运行实例组成一个集群(Cluster),这个集群里面有一个节点叫作主节点(master),Elasticsearch 是去中心化的,所以这里的主节点是动态选举出来的,不存在单点故障。
  在同一个子网内,只要在每个节点上设置相同的集群名,Elasticsearch 就会自动把这些集群名相同的节点组成一个集群。节点和节点之间的通信以及节点之间的数据分配和平衡全部由Elasticsearch自动管理。
  Elasticsearch 会把一个索引(Index)分解为多个小的索引,每一个小的索引就叫作分片(Shards)。
  Elasticsearch 的每一个分片都可以有 0 到多个副本(Replicas),而每一个副本也都是分片的完整复制品,其好处是可以用它来增加速度的同时也提高了系统的容错性。
  一旦 Elasticsearch 的某个节点数据损坏或服务不可用时,那么就可以用其他节点来代替坏掉的节点,以达到高可用的目的。
  当有节点加入或退出时,它会根据机器的负载对索引分片进行重新分配,当“挂掉”的节点再次重新启动时也会进行数据恢复(Recovery)。
  通过网关(Gateway)来管理集群恢复,可以配置集群需要加入多少个节点,才能够启动恢复。网关配置用于恢复任何失败的索引。当节点崩溃并重新启动时,Elasticsearch 将从网关读取所有索引和元数据。
  Transport代表Elasticsearch内部的节点或集群与客户端之间的交互方式。默认使用TCP协议来进行交互,同时它支持 HTTP 协议(json 格式)、Thrift、Servlet、Memcached、ZeroMQ等多种的传输协议(通过插件方式集成)。
  为了让集群能够在运行时动态附加额外的功能,使用插件机制加载实现公共接口的程序集。Elasticsearch插件用于以各种特定的方式扩展基本的Elasticsearch功能。
  1.2 安装
  首先介绍Elasticsearch在Windows下的安装,然后介绍在Linux下的安装。
  安装包下载网址:http://www.elasticsearch.org/download/。这里使用的版本为 5.1.2。得到文件:elasticsearch-5.1.2.zip
  直接解压至某目录,例如,D:\elasticsearch-5.1.2。下载完成解压后有以下几个路径:bin是运行的脚本,config是设置文件,lib中放依赖的包。
  到目录D:\elasticsearch-5.1.2\bin下,运行elasticsearch.bat。
  如果显示 Java 虚拟机内存不够,则可以在 D:\elasticsearch-5.1.2\config\jvm.options 配置文件中调整内存大小。