ElasticSearch(简称ES)相对于传统的MySQL数据库来说,ES更擅长的是海量数据的搜索,分析和计算;如果是复杂搜索,无疑可以使用ElasticSearch。但是,传统的MySQL也有自己的有点,MySQL更擅长的是事务类型的操作,可以确保数据的安全和一致性;如果是有事务要求,如商品的下单支付等业务操作,无疑使用MySQL。因此,两者是一个互补而不是替代的关系。接下来就让我们看看如何利用kibana可视化DevTools界面实现ElasticSearch的索引和文档的增删查改吧~
一、对索引库的增删查改
1.创建一个名为cd的索引库
# 创建索引库
PUT /cd
{
"mappings": {
"properties": {
"info":{
"type": "text",
"analyzer": "ik_smart"
},
"email":{
"type": "keyword",
"index": false
},
"name":{
"type": "object",
"properties": {
"firstName": {
"type": "keyword"
},
"lastName": {
"type": "keyword"
}
}
}
}
}
}
2.查询名为cd的索引库
# 查询索引
GET /cd
3.修改名为cd的索引库,只能添加新字段age,不能修改原来的字段
# 修改索引,只能添加新字段,不能修改原来的字段
PUT /cd/_mapping
{
"properties":{
"age":{
"type":"integer"
}
}
}
4.删除名为cd的索引库
# 删除索引
DELETE /cd
二、对文档(数据)的增删查改
1.在索引库cd插入文档(数据),其中1是数据的唯一标识(当1已经存在的时候,会进行全局覆盖,原来的数据没了,变成了重新执行的数据,如果字段不一样,字段也会改变)
# 插入文档(数据)(当1已经存在的时候,会进行全局覆盖,原来的数据没了,变成了重新执行的数据,如果字段不一样,字段也会改变)
POST /cd/_doc/1
{
"info":"你好呀",
"email":"12345@136.com",
"name":{
"firstName":"张",
"lastName":"四"
},
"age":18
}
2.在索引库cd查询标识为1的文档(数据)
# 查询文档(数据)
GET /cd/_doc/1
3.在索引库cd修改标识为1的文档(和POST作用一样)(数据)(当1已经存在的时候,会进行全局覆盖,原来的数据没了,变成了重新执行的数据,如果字段不一样,字段也会改变)
# 修改文档(和POST作用一样)(数据)(当1已经存在的时候,
会进行全局覆盖,原来的数据没了,变成了重新执行的数据,
如果字段不一样,字段也会改变)
PUT /cd/_doc/1
{
"info":"你好呀",
"email":"12345@136.com",
"name":{
"firstName":"张",
"lastName":"三"
},
"age":18
}
4.在索引库cd局部修改标识为1的文档,只修改某些字段,其余的字段不会消失(上面的POST和PUT修改是全局,会消失),当字段不存在时会添加字段这个字段进去
# 局部修改,只修改某些字段,其余的字段不会消失(上面的POST和PUT修改是全局,会消失),当字段不存在时会添加字段这个字段进去
POST /cd/_update/1
{
"doc": {
"info":"你好丫丫~"
}
}
5.在索引库cd删除标识为1的文档(数据)
# 删除文档(数据)
DELETE /cd/_doc/1
至此,我们利用ElasticSearch对索引库和文档(数据)的增删查改就完成啦~