一、使用Postman连接Elasticsearch
打开ES
在9200端口找到自己ES的用户名和密码(如果自己没有设置,ES会帮助我们默认生成)
之后在postman的页面
选择Authorization标签,Type项选择Basic Auth,然后填写es的用户名和密码;
设置完用户名密码以后,Headers里就会自动添加Authorization头部了:【如果没显示出来记得要点一下】
点进去添加Header,设置Content-Type为application/json类型:
设置ca证书:
在setting标签里开启ssl,然后点击settings项;
在settings页里选择Certificates,并开启CA Certificates,选择ca证书即可;(高版本es默认开启安全认证,ca证书在elasticsearch-8.2.0/config/certs目录下生成)
简单测试:
测试使用的配置信息:es版本8.2.0,运行es的虚拟机ip:127.0.0.1:9200
查看es启动成功:
地址栏输入http://127.0.0.1:9200,es有默认返回数据:
查询数据
使用GET请求,地址栏输入http://127.0.0.1:9200/jd_goods/_search,Body里使用query匹配;
{
"query":{
"match":{
"title":"苹果"
}
}
}
二、ES数据架构的主要概念与关系数据库Mysql对比
这里写图片描述
(1)关系型数据库中的数据库(DataBase),等价于ES中的索引(Index)
(2)一个数据库下面有N张表(Table),等价于1个索引Index下面有N多类型(Type),
(3)一个数据库表(Table)下的数据由多行(ROW)多列(column,属性)组成,等价于1个Type由多个文档(Document)和多Field组成。
(4)在一个关系型数据库里面,schema定义了表、每个表的字段,还有表和字段之间的关系。 与之对应的,在ES中:Mapping定义索引下的Type的字段处理规则,即索引如何建立、索引类型、是否保存原始索引JSON文档、是否压缩原始JSON文档、是否需要分词处理、如何进行分词处理等。
(5)在数据库中的增insert、删delete、改update、查search操作等价于ES中的增PUT/POST、删Delete、改_update、查GET.
ES不是数据库,它是一款分布式全文检索框架,它适合于海量数据、更新频率很低的数据(ES没有事务也不适合处理并行更改数据)。
一个ES集群可以包含多个索引(数据库)
,每个索引又包含了很多类型(表)
,类型中包含了很多文档(行)
,每个文档使用 JSON 格式存储数据,包含了很多字段(列)
。
结合工作举例
例如,要计算出2.38亿会员中有多少80后的已婚的上海男士。
传统数据库执行时间: 5个小时左右
ES执行时间:1分钟