目录
[mysql Es Redis区别](#mysql Es Redis区别)
Es下载安装教程
Es基本概念
elasticsearch是面向文档存储的,可以是数据库中一条数据记录.文档数据会被序列化为json格式后存储在elasticsearch中
- 索引---->mysql中的表
- 文档---->mysql中的一条记录
- 字段(属性)----->mysql中的列(字段)
- 映射----->mysql中的约束,建表时,定义的各种规则,约束
mysql Es Redis区别
mysql安全可靠的存储原始数据,以及数据之间的关系
ES负责进行数据搜索,分析,计算
Redis负责临时数据缓存储存
正向索引与倒排索引
正向索引:Mysql采用正向索引,正向索引基于文档id创建索引.查询词条时必须先找到文档,而后判断是否包含搜索的内容.
倒排索引:elasticsearch采用倒排索引
- 文档:每条数据就是一个文档
- 词条:文档按照语义分成的词语
存储:按照词条创建文档
倒排索引查询规则:
Es索引库基本操作
创建索引库
mapping 属性
mapping 是对索引库中文档的约束,常见的mapping属性包括:
type:字段数据类型,常见的简单类型有:
字符串:text(可分词的文本),keyword(精确值,例如:品牌,国家,邮箱)
数值:long,integer,short,byte,double,float
布尔:boolean
日期:date
对象:object
index:是否创建索引参与搜索,默认为true,如果不需要参与搜索设置为false
analyze:使用哪种分词器
代码演示:
{
"id":1",
"name":"张三丰",
"age":20,
"height":1.75,
"info":"我叫张三丰,是太极拳创始人",
"email":"6666999888.qq.com"
"state":true
}
创建索引库和mapping的语法如下:
PUT /索引库名
{
"mapping":{
"properties":{
"字段1":{
"type":"keyword"
"index":false
},
"字段2":{
"type":"text"
"analyzer":"ik_max_word"
}
}
}
}
查询索引库
语法: GET /索引库名
示例: GET /new
删除索引库
语法: DELETE /索引库名
实例: DELETE /news
修改索引库
索引库和mapping一旦创建无法修改,但是可以添加新的字段,语法如下:
PUT /news/ _mapping
{
"properties":{
"count":{
"type":"long"
}
}
}
ES文档操作
新增文档
新增文档
语法:
POST /索引库名/_doc/文档id
{
"字段名1":"值1",
"字段名2":"值2",
.....
}
查询文档
语法: GET /索引库名/_doc/文档id
删除文档
语法: DELETE /索引库名/_doc/文档id
修改文档
POST /索引库名/_update/文档id
{
"doc":{
"要修改的字段":"新值"
}
}
搜索文档
GET /news/_search
{
"query":{
"match":{
"title":"美国"
}
}
}
感谢大家的观看,本次分享就到这里。希望我的内容能够对您有所帮助。创作不易,欢迎大家多多支持,您的每一个点赞都是我持续更新的最大动力!如有不同意见,欢迎在评论区积极讨论,让我们一起学习、共同进步!如果有相关问题,也可以私信我,我会认真查看每一条留言。期待下次再见!
希望路飞的笑容可以治愈努力路途中的你我!
博主vx:Dreamkid05 --->欢迎大家和博主讨论问题