ElasticSearch入门(二)
上次说了ElasticSearch(简称ES)的概念与作用,今天我们来实际操作一下:
我这里使用的是windows操作系统,所以下载windows的es,下载链接:https://www.elastic.co/downloads/elasticsearch
下载完是一个压缩包,解压缩即可,我这里使用的是ES7.9.0版本:
解压完成进入bin目录,打开elasticsearch.bat文件或者用命令行启动:
没有闪退没有报错信息,则认为启动成功,打开浏览器访问http://localhost:9200/
出现下面页面则证明启动成功:
接下来我们使用postman来测试ES的CRUD:
增:
创建一个索引为movie,类型为_doc,id为2的Document
查:
查询到了我们刚才插入的数据
改:
ES的修改我测试了一下,如果传入的json串只有name字段,则更新完成后,得到的数据也只有name字段,说明了es的更新其实是覆盖,就是拿新数据覆盖了原来id为2的数据
删:
删除成功后再查询,没找到该数据
当然也可以使用curl命令来和ES交互(以下内容来自Elasticsearch: 权威指南)
curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>'
被 < >
标记的部件:
VERB | 适当的 HTTP 方法 或 谓词 : GET 、 POST 、 PUT 、 HEAD 或者 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。
计算集群中文档的数量:
查询文档中所有的数据:
查询name为zhangsan的数据:
或者使用DSL使用json构造查询请求:
只查询到一条数据,这里使用了 查询字符串 (query-string) 搜索
来点高级玩法,现在我们要查询name为张三并且年龄大于30的数据:
因为我们的数据里,没有name为张三并且年龄大于30,只有name为张三并且年龄为24的数据,我们改变一下查询条件,查询年龄大于20的数据:
这些操作的其它的操作(传统数据库很难搞的任务)我们下一次继续讲讲。
注:上面说更新就是覆盖有点不准确,如果你直接更新的话,确实是覆盖,但是你也可以局部更新某个字段,需要用_update这个操作符,然后json串中写字段名与你要修改的数据。获取某个字段也同理,用 _source操作符