第七章-父-子关系文档 打虎亲兄弟,上阵父子兵. 本章作为复杂搜索的铺垫,介绍父子文档是为了更好的介绍复杂场景下的ES操作. 在非关系型数据库数据库中,我们常常会有表与表的关联查询.例如学生表和成绩表的关联查询就能查出学会的信息和成绩信息.在ES中,父子关系文档就类似于表的关联查询. 背景 ES5.x开始借助父子关系文档实现多表关联查询,核心是一个索引Index下可以创建多个类型Type.但ES6.x开始只允许一个索引Index下创建一个类型Type,甚至在未来的版本中将会移除创建类型Type.…
经过接近1个月的时间,ElasticSearch6.x实战教程终于成册.这本实战教程小册有很多不足(甚至可能有错误),也是第一次完整推出一个系列的教程. 1年前,我开始真正接触ES,在此之前仅停留在知道的阶段,甚至连了解都算不上.1年后跳槽,新的知识新的领域爆炸式的喷涌而出,分布式.ES.Redis.分库分表.RPC.binlog等等,一时间有点兴奋也有点不知所措.1年后选择开始写<ElasticSearch6.x实战教程>正是基于这一年时间对ES的基础和沉淀所写,在刚开始接触ES时,尽管有h…
第一章-准备工作 工欲善其事必先利其器 ElasticSearch安装 ElasticSearch6.3.2下载地址(Linux.mac OS.Windows通用,下载zip包即可):https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-3-2.ES历史版本下载页面:https://www.elastic.co/cn/downloads/past-releases#elasticsearch. 在正式安装前,你需要确保…
第三章-简单的API 万丈高楼平地起 ES提供了多种操作数据的方式,其中较为常见的方式就是RESTful风格的API. 简单的体验 利用Postman发起HTTP请求(当然也可以在命令行中使用curl命令). 索引Index 创建索引 创建一个名叫demo的索引: PUT http://localhost:9200/demo ES响应: { "acknowledged": true, "shards_acknowledged": true, "index&…
第五章-简单搜索 众里寻他千百度 搜索是ES的核心,本节讲解一些基本的简单的搜索. 掌握ES搜索查询的RESTful的API犹如掌握关系型数据库的SQL语句,尽管Java客户端API为我们不需要我们去实际编写RESTful的API,但在生产环境中,免不了在线上执行查询语句做数据统计供产品经理等使用. 数据准备 首先创建一个名为user的Index,并创建一个student的Type,Mapping映射一共有如下几个字段: 创建名为user的Index PUT http://localhost:9…
第八章-复杂搜索 黑夜给了我黑色的眼睛,我却用它寻找光明. 经过了解简单的API和简单搜索,已经基本上能应付大部分的使用场景.可是非关系型数据库数据的文档数据往往又多又杂,各种各样冗余的字段,组成了一条"记录".复杂的数据结构,带来的就是复杂的搜索.所以在进入本章节前,我们要构建一个尽可能"复杂"的数据结构. 下面分为两个场景,场景1偏向数据结构上的复杂并且介绍聚合查询.指定字段返回.深分页,场景2偏向搜索精度上的复杂. 场景1 存储一个公司的员工,员工信息包含姓名…
第四章-分词 下雨天留客天留我不留 本打算先介绍"简单搜索",对ES的搜索有一个直观的感受.但在写的过程中发现分词无论如何都绕不过去.term查询,match查询都与分词息息相关,索性先介绍分词. ES作为一个开源的搜索引擎,其核心自然在于搜索,而搜索不同于我们在MySQL中的select查询语句,无论我们在百度搜索一个关键字,或者在京东搜索一个商品时,常常无法很准确的给出一个关键字,例如我们在百度希望搜索"Java教程",我们希望结果是"Java教程&q…
第十章-实战:ELK日志分析系统 ElasticSearch.Logstash.Kibana简称ELK系统,主要用于日志的收集与分析. 一个完整的大型分布式系统,会有很多与业务不相关的系统,其中日志系统是不可或缺的一个,集中式日志系统需要收集来自不同服务的日志,对它进行集中管理存储以及分析.ELK就是这样一个系统. ElasticSearch是一个开源分布式搜索引擎,在ELK系统中提供对数据的搜索.分析.存储. Logstash主要用于日志的收集,在ELK系统中作为日志数据源的传输. Kiban…
iOS Sprite Kit教程之使用帮助文档以及调试程序 IOS中使用帮助文档 在编写代码的时候,可能会遇到很多的方法.如果开发者对这些方法的功能,以及参数不是很了解,就可以使用帮助文档.那么帮助文本该如何打开以及如何查找相关的内容呢?以下将为你解决这些问题. 1.打开帮助文档 要使用帮助文本,必须要对其进行打开.选择Help|Documentation and API Reference命令,如图1.73所示,就可以打开了,打开后的帮助文档如图1.74所示.   图1.73  打开帮助文档…
在来自不同域名的页面间传递消息一般统称为跨文档消息传送,简称XDM.如,www.leemagnum.com域中的页面与位于一个内嵌框架中的http://blog.csdn.net/lee_magnum域名中的页面通信.在XDM机制出现之前,要毫无压力地实现这种通信需要用很长时间.XDM把这种机制规范化,让咱们能够既稳妥又简单地实现跨文档通信. XDM的核心是postMessage()方法.对于XDM而言,”另一个地方”指的是包含在当前页面中的iframe标签,或者有当前页面弹出的窗口. post…