elasticsearch是一款非常强大的开源搜索引擎 ,elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域 。
mysql与elasticsearch
-
Mysql:擅长事务类型操作,可以确保数据的安全和一致性
-
Elasticsearch:擅长海量数据的搜索、分析、计算
-
对安全性要求较高的写操作,使用mysql实现
-
对查询性能要求较高的搜索需求,使用elasticsearch实现
-
两者再基于某种方式,实现数据的同步,保证一致性
mapping映射属性
-
type:字段数据类型,常见的简单类型有:
-
字符串:text(可分词的文本)、keyword(精确值,例如:品牌、国家、ip地址)
-
数值:long、integer、short、byte、double、float、
-
布尔:boolean
-
日期:date
-
对象:object
-
-
index:是否创建索引,默认为true
-
analyzer:使用哪种分词器
-
properties:该字段的子字段
{
"age": 18,
"weight": 19.3,
"isMarried": false,
"info": "我是一个好学生",
"email": "126lll.@",
"score": [500, 1999, 95.],
"name": {
"firstName": "张",
"lastName": "三"
}
}
索引库的CRUD
基本语法:
-
请求方式:PUT
-
请求路径:/索引库名,可以自定义
-
请求参数:mapping映射
查询索引库
基本语法:
-
请求方式:GET
-
请求路径:/索引库名
-
请求参数:无
GET /索引库名
修改索引库
索引库一旦创建,无法修改mapping。
PUT /索引库名/_mapping
{
"properties": {
"新字段名":{
"type": "integer"
}
}
}
删除索引库
语法:
-
请求方式:DELETE
-
请求路径:/索引库名
-
请求参数:无
DELETE /索引库名