第五章-简单搜索 众里寻他千百度 搜索是ES的核心,本节讲解一些基本的简单的搜索. 掌握ES搜索查询的RESTful的API犹如掌握关系型数据库的SQL语句,尽管Java客户端API为我们不需要我们去实际编写RESTful的API,但在生产环境中,免不了在线上执行查询语句做数据统计供产品经理等使用. 数据准备 首先创建一个名为user的Index,并创建一个student的Type,Mapping映射一共有如下几个字段: 创建名为user的Index PUT http://localhost:9…
第八章-复杂搜索 黑夜给了我黑色的眼睛,我却用它寻找光明. 经过了解简单的API和简单搜索,已经基本上能应付大部分的使用场景.可是非关系型数据库数据的文档数据往往又多又杂,各种各样冗余的字段,组成了一条"记录".复杂的数据结构,带来的就是复杂的搜索.所以在进入本章节前,我们要构建一个尽可能"复杂"的数据结构. 下面分为两个场景,场景1偏向数据结构上的复杂并且介绍聚合查询.指定字段返回.深分页,场景2偏向搜索精度上的复杂. 场景1 存储一个公司的员工,员工信息包含姓名…
第三章-简单的API 万丈高楼平地起 ES提供了多种操作数据的方式,其中较为常见的方式就是RESTful风格的API. 简单的体验 利用Postman发起HTTP请求(当然也可以在命令行中使用curl命令). 索引Index 创建索引 创建一个名叫demo的索引: PUT http://localhost:9200/demo ES响应: { "acknowledged": true, "shards_acknowledged": true, "index&…
经过接近1个月的时间,ElasticSearch6.x实战教程终于成册.这本实战教程小册有很多不足(甚至可能有错误),也是第一次完整推出一个系列的教程. 1年前,我开始真正接触ES,在此之前仅停留在知道的阶段,甚至连了解都算不上.1年后跳槽,新的知识新的领域爆炸式的喷涌而出,分布式.ES.Redis.分库分表.RPC.binlog等等,一时间有点兴奋也有点不知所措.1年后选择开始写<ElasticSearch6.x实战教程>正是基于这一年时间对ES的基础和沉淀所写,在刚开始接触ES时,尽管有h…
第四章-分词 下雨天留客天留我不留 本打算先介绍"简单搜索",对ES的搜索有一个直观的感受.但在写的过程中发现分词无论如何都绕不过去.term查询,match查询都与分词息息相关,索性先介绍分词. ES作为一个开源的搜索引擎,其核心自然在于搜索,而搜索不同于我们在MySQL中的select查询语句,无论我们在百度搜索一个关键字,或者在京东搜索一个商品时,常常无法很准确的给出一个关键字,例如我们在百度希望搜索"Java教程",我们希望结果是"Java教程&q…
第一章-准备工作 工欲善其事必先利其器 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. 在正式安装前,你需要确保…
第七章-父-子关系文档 打虎亲兄弟,上阵父子兵. 本章作为复杂搜索的铺垫,介绍父子文档是为了更好的介绍复杂场景下的ES操作. 在非关系型数据库数据库中,我们常常会有表与表的关联查询.例如学生表和成绩表的关联查询就能查出学会的信息和成绩信息.在ES中,父子关系文档就类似于表的关联查询. 背景 ES5.x开始借助父子关系文档实现多表关联查询,核心是一个索引Index下可以创建多个类型Type.但ES6.x开始只允许一个索引Index下创建一个类型Type,甚至在未来的版本中将会移除创建类型Type.…
第十章-实战:ELK日志分析系统 ElasticSearch.Logstash.Kibana简称ELK系统,主要用于日志的收集与分析. 一个完整的大型分布式系统,会有很多与业务不相关的系统,其中日志系统是不可或缺的一个,集中式日志系统需要收集来自不同服务的日志,对它进行集中管理存储以及分析.ELK就是这样一个系统. ElasticSearch是一个开源分布式搜索引擎,在ELK系统中提供对数据的搜索.分析.存储. Logstash主要用于日志的收集,在ELK系统中作为日志数据源的传输. Kiban…
今天群里正好有人问起了Java文件上传的事情,本来这是Java里面的知识点,而我目前最主要的精力还是放在了JS的部分.不过反正也不麻烦,我就专门开一贴来聊聊Java文件上传的基本实现方法吧. 话不多说,直接开始. 第一步,新建一个空白的web项目.开发工具我还是用的eclipse,我不喜欢用IDEAL. 接下来,编写index.jsp <%@ page language="java" contentType="text/html; charset=UTF-8"…
ListView的下拉刷新很常见,很多开源的框架都能做到这个效果,当然也可以自己去实现.本篇案例是基于xlistview的. 布局: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent&quo…