技术栈及初识Elasticsearch
技术栈
Elasticsearch概念和适用场景
Elasticsearch是一个开源的分布式全文检索和分析引擎,他可以进行实时快速存储搜索分析海量的数据。
Elasticsearch可以在单点运行,也可以在多节点的集群之上运行,索引的数据通过ES的sharding(分片算法)散列在不同的节点之上,从而实现了高可用,负载均衡的分布式的搜索服务。
node节点
cluster集群,由多个node组成的
Elasticsearch构建与Lucene之上,目前是业内全文检索首选的一种解决方案。
Elasticsearch特点:
分布式、全文检索、实时快速、对外提供Restful接口
Elasticsearch VS MySQL
ES 6.x版本以后官方推崇大家一个Index尽量保持一个Type。
Mysql:Select * from user.user_info where name = ‘张三’;
ES:GET /user/user_info/_search?q=name:张三
安装ES、postman、kibana
本次使用ES 6.x需要jdk 1.8,所有确保已经安装jdk 1.8。
ES下载地址,选好版本下载即可
https://www.elastic.co/cn/downloads/past-releases#elasticsearch
下载好后解压,双击elasticsearch.bat即可(当前为win11上演示,linux上需要使用命令bin/elasticsearch)
浏览器中访问http://127.0.0.1:9200/如图显式则启动成功。
postman下载地址,下载完后直接双击安装运行即可。
https://www.postman.com/downloads/
kibana下载地址,选好版本下载即可。(kibana版本尽量和ES版本保持一致)
https://www.elastic.co/cn/downloads/past-releases#kibana
同样下载解压后,双击kibana.bat运行即可。(运行之前保证ES已经在运行)
浏览器输入http://127.0.0.1:5601/如图显式则启动成功。
演示postman对ES的交互
打开postman创建一个叫ES的组,组下创建以下连接测试:
查看所有索引: GET localhost:9200/_all
创建索引-test:PUT localhost:9200/test
删除索引-test:DELETE localhost:9200/test
创建索引-person:PUT localhost:9200/person
新增数据-person-1:PUT localhost:9200/person/_doc/1
新增数据-person-2:PUT localhost:9200/person/_doc/2
搜索数据-person-id:GET localhost:9200/person/_doc/1
搜索数据-person-name:GET localhost:9200/person/_doc/_search?q=first_name:john
演示kibana对ES的交互
ES 6.x版本后官方推崇只有一个type,且推荐叫_doc,查询的时候可以省略type
should有点像or,只要有个条件满足就会查出来。
must有点像and,两个条件一起满足才会被查出来