频道栏目
首页 > 资讯 > 云计算 > 正文

Kibana+ElasticSearch实现索引数据的增删改查

18-03-19        来源:[db:作者]  
收藏   我要投稿

在上一篇博客已经介绍了ElasticSearch相关开发环境的搭建,接下来着手做该环境下索引数据的简单的增删改查操作.

1.结构化创建索引(创建一个名称为school的结构化索引,数据类型定义好的)

PUT school
{
  "settings":{
    "number_of_shards": 3,   
    "number_of_replicas": 1	
  },
  "mappings":{
    "student":{
      "properties":{
        "name":{
          "type":"text"
        },
        "address":{
          "type":"keyword"
        },
        "age":{
          "type":"integer"
        },
        "date":{
          "type":"date",
          "format":"yyyy-MM-dd HH:mm:ss|| yyy-MM-dd||epoch_millis"
        }
      }
    }
  }
}
2.指定ID插入数据(相当于插入一条记录到一个数据库表中)
PUT /school/student/1
{
  "name":"杨旭",
  "address":"山东烟台",
  "age":22,
  "date":"1995-04-12"
}
3.系统指定ID的插入方式
POST /school/student/
{
  "name":"张小花",
  "address":"山东烟台",
  "age":24,
  "date":"1996-07-24"
}
4.索引的查询语句(简单的查询)

4.1 获取某个索引的某个类型的某个id的数据(以下两种方式均可)

GET /school/student/1

GET /school/student/1_source
4.2 查询指定ID的某些字段

这个语句相当于SELECT ADDRESS FROM STUDENT WHERE ID = 1

GET /school/student/1_source=address
这个语句相当于SELECT NAME,ADDRESS FROM STUDENT WHERE ID = 1
GET /school/student/1_source=name,address

4.3 查询当前索引school的所有数据

GET /school/_search
{
  "query": {
    "match_all": {
      
    }
  }
}

4.4 设置查询返回的索引数据数量

GET /school/_search
{
  "query": {
    "match_all": {
      
    }
  },
  "from": 1,
  "size": 1
}

4.5 按照字段内容name模糊查询相关数据

GET /school/_search
{
  "query": {
    "match": {
      "name": "海"
    }
  }
}
4.6 查询内容排序(按照时间倒序排列)
GET /school/_search
{
  "query": {
    "match": {
      "name": "海"
    }
  },
  "sort": [
    {
      "date": {
        "order": "desc"
      }
    }
  ]
}
5.索引的更新操作(相当于SQL的修改操作)

5.1 覆盖式修改索引文档

该句相当于SQL的UPDATE STUDENT SET NAME = ,ADDRESS = ,AGE = ,DATE = WHERE ID = 1

PUT /school/student/1
{
  "name":"杨旭",
  "address":"山东济宁",
  "age":25,
  "date":"1995-04-12"
}

5.2 修改索引文档的某些字段

该句相当于SQL的UPDATE STUDENT SET AGE = 20 WHERE ID =1

POST /school/student/1/_update
{
  "doc":{
    "age":20
  }
}
6.索引的删除操作

删除操作分为3种:

6.1 删除整个index(库)

DELETE school

6.2 删除一个type(表)

DELETE school/student
尝试了一下,结果不行,说明ES5以后不再支持删除type.

6.3 删除一条记录

DELETE /school/student/1/
相关TAG标签
上一篇:hadoop命令使用put上传文件报错的解决方法
下一篇:克隆虚拟机的步骤教程
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站