一、索引库操作
1.mapping映射属性
索引库类似数据库表,mapping映射就类似表的结构。我们要向es中存储数据必须先创建库和表。
mapping说对索引库中文档的约束,常见的mapping属性包括:
type:字段数据类型,常见的简单类型有:
字符串:text(可分词的文本)、keyword(精确值,例如:国家、ip地址)
数值:long、integer、short、byte、double、float
布尔:boolean
日期:date
对象:object
index:是否创建倒排索引,默认为true
analyzer:使用哪种分词器,一般只有text类型需要使用
properties:指定字段的子字段
2.索引库的CRUD
新增索引库
基本语法:
- 请求方式:PUT
- 请求路径:/索引库名,可以自定义
- 请求参数:mapping映射
格式:
PUT /索引库名称
{
"mappings": {
"properties": {
"字段名":{
"type": "数据类型",
"analyzer": "分词器"
},
"字段名2":{
"type": "数据类型",
"index": boolean值
},
"字段名3":{
"properties": {
"子字段": {
"type": "数据类型"
}
}
},
// ...略
}
}
}
查询索引库
基本语法:
- 请求方式:GET
- 请求路径:/索引库名
- 请求参数:无
格式:
GET /索引库名
修改索引库
基本语法:
- 请求方式:PUT
- 请求路径:/索引库名/_mapping,可以自定义
- 请求参数:mapping映射
格式:
PUT /索引库名/_mapping
{
"properties": {
"新字段名":{
"type": "数据类型"
}
}
}
删除索引库
基本语法:
- 请求方式:DELETE
- 请求路径:/索引库名
- 请求参数:无
格式:
DELETE /索引库名
二、文档操作
1.新增文档
基本语法:
- 请求方式:POST
- 请求路径:/索引库名/_doc/文档id
- 请求参数:json文档
格式:
POST /索引库名/_doc/文档id
{
"字段1": "值1",
"字段2": "值2",
"字段3": {
"子属性1": "值3",
"子属性2": "值4"
},
// ...
}
示例代码:
2.查询文档
基本语法:
- 请求方式:GET
- 请求路径:/索引库名称/_doc/文档id
- 请求参数:无
格式:
GET /索引库名称/_doc/文档id
3.删除文档
基本语法:
- 请求方式:DELETE
- 请求路径:/索引库名/_doc/文档id
- 请求参数:无
格式:
DELETE /索引库名/_doc/文档id
4.修改文档
修改有两种方式:
- 全量修改:会删除旧文档,添加新文档
- 增量修改:指定修改文档中的部分字段
全量修改是覆盖原来的文档,其本质是:
- 根据指定的id删除文档
- 新增一个相同id的文档
全量修改基本语法
- 请求方式:PUT
- 请求路径:/索引库名/_doc/文档id
- 请求参数:json文档
格式:
PUT /索引库名/_doc/文档id
{
"字段1": "值1",
"字段2": "值2",
// ... 略
}
增量修改
增量修改是只修改指定id匹配的文档中的部分字段。
基本语法:
- 请求方式:POST
- 请求路径:/索引库名/_update/文档id
- 请求参数:json文档
格式:
POST /索引库名/_doc/文档id/_update/
{
"doc": {
"字段名": "新的值",
}
}