1. ElasticSearch简介
1.1 什么是ElasticSearch?
- 实时的分布式搜索和分析引擎。
- 基于
Lucene
的搜索服务器。提供了一个分布式多用户能力的全文搜索引擎 - 基于
RESTful web
接口。Elasticsearch是用Java开发的, 是当前流行的企业级搜索引擎。 - 设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
1.2 ES特点
- 开箱即用,部署简单。
- 可以作为一个大型分布式集群(数百台服务器)技术,处理PB级数据,服务大公司;也可以运行在单机上。
- ES将全文检索、数据分析以及分布式技术,合并在一起。
- 全文检索,同义词处理,相关度排名,复杂数据分析,海量数据的近实时处理 。
1.3 ES逻辑结构
ElasticSearch | MySQL |
索引(index) | 数据库(db) |
类型(type) | 表(table) |
文档(document) | 行(row) |
2. 快速入门
2.1 ElasticSearch安装
我安装的是ElasticSearch5.6.8
的。
下载链接
我下载的是.zip
,所以解压之后就可以用了。
- 第一步:
cd 安装目录/bin
- 第二步: 然后在地址栏中输入
cmd
- 第三步:在命令行窗口中输入
elasticsearch
,回车。 - 启动成功!
因为ES支持Restful,所以我在这里用postman来测试。
端口默认是9200
2.2 新建索引
上边说过索引index
就相当于mysql
的数据库。下面在ES中新建一个索引。
- 用
put
方式提交 -
hello_world_index
为我们新建的索引名称。
2.3 新建文档
文档就相当于MySQL
中的行.
- 以post方式提交
-
http://ip:port/索引名/类型名
- body中的内容请选择
application/json
格式,其他格式会报错。
2.4 查询所有文档
- 查询
某索引某类型
的全部数据 - 以get方式请求
-
http://ip:port/索引名/类型名/_search
2.5 修改文档
-
put
方式提交 - 格式:
http://ip:port/索引名/类型名/文档_id
-
body
中填写修改内容
- 例如我们要修改
_id
为AXE6IQ0gYH-LaeHdYmtp
的记录:
- 若我们想要修改的
_id
不存在,则会创建新文档,并且新文档的_id
就是你请求url后边的id。
2.6 按ID查询文档
- get方式请求
- 格式:
http://ip:port/索引名/类型名/id
例如我们要查询_id
为AXE6IQ0gYH-LaeHdYmtp
的记录:
2.7 基本匹配查询
- 根据某列进行查询
- get方式提交
- 格式:
http://ip:port/索引名/类型名/_search?q=列名:值
例如查询userName
= aaaa
的文档:
2.8 模糊查询
可以使用*代表任意字符:
- 格式:
http://ip:port/索引名/类型名/_search?q=列名:值
- 将url中的
值
部分插入*
达到模糊匹配的效果。
例如:查询userName
开头是aa
的文档。
2.9 删除文档
- 根据ID删除文档
- delete方式提交
- 格式:
http://ip:port/索引名/类型名/文档id
例如我们要删除_id
为AXE6IQ0gYH-LaeHdYmtp1
的记录
**注意观察:**相应的数据中,result
字段标识我们所作的操作。
ES的基本操作到这里算是结束了。
其实这样操作很麻烦,工作中往往会用一些插件,比如Head
插件。