初识elasticsearch
文档 es是面向文档存储的,可以是数据库中的一条商品数据,一个订单。
文档数据会被序列化为json格式后存储在es中。
索引:相同类型文档的集合
Mysql:擅长事务类型操作,可以确保数据的安全和一致性
Elasticsearch:擅长海量数据的搜索、分析计算
Elasticsearch 与 Mysql 概念对比
mapping映射属性
我们打开elasticsearch查看常用mapping会发现特别多,我们刚开始也不用完全会用,先把常用的学会,其他的以后用得到在去官网看。
mapping是对索引库中文档的约束,常见的mapping属性包括:
- type:字段数据类型,常见的简单类型有:
- 字符串:text(可分词的文本)、keyword(精确值,例如品牌、国家等)
- 数值:long、interger、short、byte、double、float(和Java的非常像因为底层就是Java实现的)
- 布尔:boolean
- 日期:date
- 对象:object
- index:是否创建索引,默认为true
- analyzer:使用哪种分词器
- properties:该字段的子字段
索引库的CRUD
创建索引库
ES中通过Resful请求操作索引库、文档。请求内容用DSL语句来表示。创建索引库和mapping的DSL语句如下(自己打的运行失败后对照下面检擦代码正确之后先执行 delete /hyq之后在重新运行下面的代码 ):
PUT /hyq
{
"mappings": {
"properties": {
"info": {
"type": "text",
"analyzer": "ik_smart"
},
"email": {
"type": "keyword",
"index": false
},
"name": {
"type": "object",
"properties": {
"firstName": {
"type": "keyword"
},
"lastName": {
"type": "keyword"
}
}
}
}
}
}
{
"age": 21,
"info": "to be No1",
"email": hello@mdfk.com,
"name": {
"firstName": "超",
“lastName”: "马",
}
}
出现如下说成功了
查看、删除索引库
查看索引库语法:
GET /索引库名
示例:
GET /hyq
成功示例
删除索引库语法:
DELETE /索引库名
示例:
DELETE /hyq
成功示例:
修改索引库
索引库和mapping一段创建无法修改,但是可以添加新的字段。
示例:
PUT /hyq/_mapping
{
"properties": {
"age": {
"type": "integer"
}
}
}
成功示例: