知识储备 html
学习ElasticSearch以前能够先了解一下lucene,这里是我整理的一篇关于lucene的笔记(传送门),对搜索框架有兴趣的还能够了解一下另外一款企业级搜索应用服务器---solr(传送门)git
一.ElasticSearch概述github
1.简介web
ElasticSearch是一个基于Lucene的分布式搜索服务器,提供Restful API,采用shard(分片)的方式保证数据安全,并提供自动resharding的功能,github等大型站点就是采用了ES做为其搜索服务。目前开源的ES已经成为全球搜索引擎的首选,它能够快速的存储、搜索和分析海量数据。SpringBoot经过整合SpringData ElasticSearch为咱们提供了很是便捷的检索功能支持。docker
二.ElasticSearch 安装json
1.使用docker安装ES浏览器
docker pull registry.docker-cn.com/library/elasticsearch
2.使用docker启动ES安全
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name ES01 5acf0e8da90b
说明:9200 是web通讯端口,9300是分布式节点通讯端口,ES默认占用2G的堆内存空间,通常直接启用的话,必定会报错,因此咱们还要使用ES_JAVA_OPTS设置JVM堆内存大小。服务器
2.测试ES是否启动框架
使用浏览器访问:虚拟机ip地址:9200若成功响应下面的json数听说明ES已经成功启动了。
三.ES的基本使用
ES官网为咱们提供了详细的文档,并且很人性化地提供了中文文档,因此学习起来十分方便。
ES能够经过Restful API来CRUD数据,可使用PostMan简单尝试一下。
1.存储一条文档
2.检索文档
检索数据使用get请求:
响应数据:
3.检测是否有该数据
使用head请求:
注意head请求没有返回响应体,能够经过返回的状态码判断是否存在数据,200表示有,404表示没有。
4.删除文档
使用delete请求能够删除文档:
5.更新文档
更新文档一样使用put请求,新的文档会将旧的文档覆盖:
返回的时候version版本变为2了,表示数据已经更新:
6.检索employee下的全部数据
注意:请求的时候要把body里的数据清空,否则会报下面的错误:
7.条件查询
查询last_name为Wang的员工。
也可使用json条件查询,因为get没有请求体,能够改成用post请求:
8.更高级查询
查询last_name为Wang,而且年龄大于30的员工
9.全文检索
匹配about中含有hello或者w的员工信息。
10.短语搜索
想当于精确匹配,例如找到about为hello,world的员工信息。
11.高亮搜索
返回值里会为高亮的字段自动加上HTML标签: