索引:默认为非结构化,可通过设置设置mappings将其转为结构化存储
- 建立结构化数据
结构:http://ip:9200/book/novel/_mappings [put]
novel - properties - 属性 : type: 属性类型
反馈:{"acknowledged": true} 表示成功
建立结构化数据
在 概览-信息-索引信息 中可查看_mappings内容
{
"settings": { //指定索引的配置
"number_of_shards": 3, //索引分片数
"number_of_replicas": 1 //索引备份数
},
"mappings": { // 索引映射定义
"man": { // 类型定义
"properties": { //属性定义
"name": {
"type": "text"
},
"country": {
"type": "keyword" // 关键词是不可切分的
},
"age": {
"type": "integer"
},
"date": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis" // 指定格式,多个用||分隔,epoch_millis为时间戳
}
}
}
}
}
- 数据插入
结构:http://127.0.0.1:9200/people/man/1 [put]
http://127.0.0.1:9200/people/man/ [post]
people为索引,man为类型,1为指定id(不设置则es自动生成),提交内容为属性json,如下:
{
"name": "张三丰",
"country": "China",
"age": 30,
"date": "1987-9-1"
}
反馈结果:
{
"_index": "people",
"_type": "man",
"_id": "1",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 2,
"failed": 0
},
"_seq_no": 0,
"_primary_term": 1
}
- 数据修改
结构:http://127.0.0.1:9200/people/man/1/_update [post]
3.1 按结构直接修改 请求内容为要修改的属性值:
{
"doc": {
"country": "shaoLin"
}
}
3.2 按脚本动态修改,请求内容:
直接修改
{
"script": {
"lang": "painless",
"inline": "ctx._source.age += 10"
}
}
或外置参数:
{
"script": {
"lang": "painless",
"inline": "ctx._source.age = params.age",
"params": {
"age": 100
}
}
}
反馈结果:
{
"_index": "people",
"_type": "man",
"_id": "1",
"_version": 2,
"result": "updated",
"_shards": {
"total": 2,
"successful": 2,
"failed": 0
},
"_seq_no": 1,
"_primary_term": 1
}
- 删除数据
4.1 删除文档
结构:http://127.0.0.1:9200/people/man/1 [delete]
请求结果:
{
"_index": "people",
"_type": "man",
"_id": "1",
"_version": 5,
"result": "deleted",
"_shards": {
"total": 2,
"successful": 2,
"failed": 0
},
"_seq_no": 4,
"_primary_term": 1
}
4.2 删除索引
结构:http://127.0.0.1:9200/people [delete]
网友评论