本文主要介绍一下索引库及文档的一些增删改查操作, 以下都是一些常用的操作, 无需死记硬背, 只需要用到的时候常翻阅即可;
当然学习索引库和文档的一些基本操作还是要先在虚拟机启动一下 elasticsearch 及 kibana, 启动成功后输入 172.16.xx.xxx:5601 后出现以下界面即启动成功:
学习索引库的一些基本操作, 首先要明白 mapping 这个映射属性的作用, mapping 是对索引库中文档的约束, 常见的约束类型有以下多种:
接下来将演示索引库的增删改查操作; 首先创建索引库和映射, 基本语法如下:
PUT /fug
{
"mappings": {
"properties": {
"info": {
"type": "text",
"analyzer": "ik_smart"
},
"email": {
"type": "keyword",
"index": false
},
"name": {
"type": "object",
"properties": {
"firstName": {
"type": "keyword"
},
"lastName": {
"type": "keyword"
}
}
}
}
}
}
解读:
这里还是以代码的形式演示, 然后进行解读; 查询索引库的代码比较简单, GET /fug
即可; 执行完结果如下:
这里需要注意, 关于正向索引和倒排索引的概念上一篇文章已经介绍, 点击这里直达; 虽然倒排索引的结构不是很复杂, 但是数据结构只要是创建完成了, 就不要再进行改变了, 如你改变了分词器, 那么就需要重新创建倒排索引, 因此索引库一旦创建, 就无法改变 mapping; 那么如果迫不得已想要改变该怎么办呢???
虽然不能改变已有的 mapping 中的字段, 但是可以添加新的字段到 mapping 中, 这样也不会出现倒排索引改变引起的后果, 因此修改索引库操作其实就是往 mapping 中添加新的字段;
PUT /fug/_mapping
{
"properties": {
"age": {
"type":"integer"
}
}
}
语法说明: PUT /索引库名称/_mapping
.
POST /fug/_doc/1001
{
"info": "今天是个好日子,早起的虫儿有鸟吃",
"email": "[email protected]",
"name": {
"firstName": "想",
"lastName": "理"
}
}
这时候如果进行查询操作, 则发下已经存在了 age 这个字段;
删除索引库的操作也比较简单, DELETE /fug
, 这里不再演示.
PUT /索引库名
;GET /索引库名
;PUT /索引库名/_mapping
;DELETE /索引库名
. 索引库已经创建完成, 接下来往里面插入数据;
修改文档的方式有两种;
基本语法: PUT /索引库名/_doc/文档 id
;
PUT /fug/_doc/1
{
"info": "今天是 2023 年 3 月 2 日",
"email": "[email protected]",
"name": {
"firstName": "想",
"lastName": "理"
}
}
基本语法: POST /索引库名/_update/文档 id
;
POST /fug/_update/1
{
"doc": {
"email": "[email protected]"
}
}
POST /索引库名/_doc/文档id
;GET /索引库名/_doc/文档id
;DELETE /索引库名/_doc/文档id
;PUT /索引库名/_doc/文档id
;POST /索引库名/_update/文档id
.