ElasticSearch入门(二)

上次说了ElasticSearch(简称ES)的概念与作用,今天我们来实际操作一下:

我这里使用的是windows操作系统,所以下载windows的es,下载链接:https://www.elastic.co/downloads/elasticsearch
1.png
下载完是一个压缩包,解压缩即可,我这里使用的是ES7.9.0版本:

解压完成进入bin目录,打开elasticsearch.bat文件或者用命令行启动:
2.png
没有闪退没有报错信息,则认为启动成功,打开浏览器访问http://localhost:9200/

出现下面页面则证明启动成功:
3.png
接下来我们使用postman来测试ES的CRUD:

增:
4.png
创建一个索引为movie,类型为_doc,id为2的Document

查:
5.png
查询到了我们刚才插入的数据

改:
6.png
7.png
ES的修改我测试了一下,如果传入的json串只有name字段,则更新完成后,得到的数据也只有name字段,说明了es的更新其实是覆盖,就是拿新数据覆盖了原来id为2的数据
8.png
9.png
删:
10.png
11.png
删除成功后再查询,没找到该数据

当然也可以使用curl命令来和ES交互(以下内容来自Elasticsearch: 权威指南)

  1. curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>'

< > 标记的部件:

VERB 适当的 HTTP 方法谓词 : GETPOSTPUTHEAD 或者 DELETE
PROTOCOL http 或者 https(如果你在 Elasticsearch 前面有一个 https 代理)
HOST Elasticsearch 集群中任意节点的主机名,或者用 localhost 代表本地机器上的节点。
PORT 运行 Elasticsearch HTTP 服务的端口号,默认是 9200
PATH API 的终端路径(例如 _count 将返回集群中文档数量)。Path 可能包含多个组件,例如:_cluster/stats_nodes/stats/jvm
QUERY_STRING 任意可选的查询字符串参数 (例如 ?pretty 将格式化地输出 JSON 返回值,使其更容易阅读)
BODY 一个 JSON 格式的请求体 (如果请求需要的话)

TIP:如果你是在 Windows 上面运行 Elasticsearch,你可以从 http://curl.haxx.se/download.html中下载 cURL。

计算集群中文档的数量:
12.png
查询文档中所有的数据:
13.png
查询name为zhangsan的数据:
14.png
或者使用DSL使用json构造查询请求:
15.png
只查询到一条数据,这里使用了 查询字符串query-string) 搜索
来点高级玩法,现在我们要查询name为张三并且年龄大于30的数据:
16.png
因为我们的数据里,没有name为张三并且年龄大于30,只有name为张三并且年龄为24的数据,我们改变一下查询条件,查询年龄大于20的数据:
17.png
这些操作的其它的操作(传统数据库很难搞的任务)我们下一次继续讲讲。

注:上面说更新就是覆盖有点不准确,如果你直接更新的话,确实是覆盖,但是你也可以局部更新某个字段,需要用_update这个操作符,然后json串中写字段名与你要修改的数据。获取某个字段也同理,用 _source操作符