kibana操作ES简单操作之创建/更新/删除/查询索引等

本文档详细介绍了在Elasticsearch中如何创建索引、更新记录、查询记录以及管理索引的过程。通过示例展示了PUT、POST、GET和DELETE请求的使用,包括字段映射、删除记录和索引的操作。

新建一个索引"电影"的索引

PUT /movie/type1(索引类型,可以不写)/1
{
  "name":"我不是药神",
  "type":"情感",
  "publishYear":2018,
  "author":"徐峥",
  "score":9.2,
  "description":" '普通中年男子程勇(徐峥 饰)经营着一家保健品店,失意又失婚。不速之客吕受益(王传君 饰)的到来,让他开辟了一条去印度买药做“代购”的新事业,虽然困难重重,但他在这条“买药之路”上发现了商机,一发不可收拾地做起了治疗慢粒白血病的印度仿制药独家代理商。赚钱的同时,他也认识了几个病患及家属,为救女儿被迫做舞女的思慧(谭卓 饰)、说一口流利“神父腔”英语的刘牧师(杨新鸣 饰),以及脾气暴烈的“黄毛”(章宇 饰),几个人合伙做起了生意,利润倍增的同时也危机四伏。程勇昔日的小舅子曹警官(周一围 饰)奉命调查仿制药的源头,假药贩子张长林(王砚辉 饰)和瑞士正牌医药代表(李乃文 饰)也对其虎视眈眈,生意逐渐变成了一场关于救赎的拉锯战' "
}

创建成功后,会返回:
#! Deprecation: [types removal] Specifying types in document index requests is deprecated, use the typeless endpoints instead (/{index}/_doc/{id}, /{index}/_doc, or /{index}/_create/{id}).
{
  "_index" : "test",
  "_type" : "type1",
  "_id" : "1", #我不是药神这条记录的id  因为我在路径中指定id是1"_version" : 1,
  "result" : "created",#已创建
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 3,
  "_primary_term" : 1
}

更新id是1的电影信息 将名字更新为"我不是药神==="

POST /movie/type1/1
{
  "name":"我不是药神===",
  "type":"情感",
  "publishYear":2018,
  "author":"徐峥",
  "score":9.2,
  "description":" '普通中年男子程勇(徐峥 饰)经营着一家保健品店,失意又失婚。不速之客吕受益(王传君 饰)的到来,让他开辟了一条去印度买药做“代购”的新事业,虽然困难重重,但他在这条“买药之路”上发现了商机,一发不可收拾地做起了治疗慢粒白血病的印度仿制药独家代理商。赚钱的同时,他也认识了几个病患及家属,为救女儿被迫做舞女的思慧(谭卓 饰)、说一口流利“神父腔”英语的刘牧师(杨新鸣 饰),以及脾气暴烈的“黄毛”(章宇 饰),几个人合伙做起了生意,利润倍增的同时也危机四伏。程勇昔日的小舅子曹警官(周一围 饰)奉命调查仿制药的源头,假药贩子张长林(王砚辉 饰)和瑞士正牌医药代表(李乃文 饰)也对其虎视眈眈,生意逐渐变成了一场关于救赎的拉锯战' "
}

更新成功后,会返回:
#! Deprecation: [types removal] Specifying types in document index requests is deprecated, use the typeless endpoints instead (/{index}/_doc/{id}, /{index}/_doc, or /{index}/_create/{id}).
{
  "_index" : "movie",
  "_type" : "type1",
  "_id" : "1",
  "_version" : 3,
  "result" : "updated",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 4,
  "_primary_term" : 1
}

查询该索引下所有的记录详情

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

根据id查询记录详情

GET /movie/_search
{
  "query": {
    "match": {
      "_id" : "1"
    }
  }
}

创建索引字段映射的规则,设置字段类型

PUT /movie
{
  "mappings":{
    "properties":{
      "name":{
        "type":"text"
      },
      "type":{
        "type":"text"
      },
      "publishYear":{
        "type":"long"
      },
      "author":{
        "type":"text"
      },
      "score":{
        "type":"float"
      },
      "description":{
        "type":"text"
      }
    }
  }
}

删除id是2的电影

DELETE /movie/type1/2

删除"test"索引

DELETE /test

查看当前有多少索引以及版本信息等

GET _cat/indices?v

返回如下:

health status index                    uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   test                     21qsPofySJutItsrr7h6DQ   1   1          2            0      7.3kb          7.3kb
yellow open   movie                    FKixlt_BT4-Ce49iGiKxxg   1   1          1            1     19.8kb         19.8kb
green  open   .kibana_task_manager_1   x25e5ifgRR-SiMZbkJLJ8w   1   0          2            1     29.8kb         29.8kb
yellow open   index_book               sjei-d8FQbm0uRcsVXX3MQ   1   1    5000102            0      772mb          772mb
green  open   .apm-agent-configuration IiAhleGAQVupz57DRu8Lxg   1   0          0            0       283b           283b
green  open   .kibana_1                09qfnrVBR_um93rgKM4xkg   1   0         15           10     60.6kb         60.6kb

查看所有的索引的记录总条数

GET _cat/count

返回:1622357660 06:54:20 5000123(数量)   
Kibana 8.x 中,可以通过 Dev Tools 工具与 Elasticsearch 进行交互,从而创建索引。以下是具体的操作步骤和示例。 ### 创建索引并定义分析器 在 Kibana 的 **Dev Tools** 界面中,可以使用 Elasticsearch 的 REST API 来创建索引,并根据需求定义自定义分析器。例如,在微博数据分析场景中,可以结合 `ik_smart` 分词器和长度过滤器来优化词云生成效果: ```json PUT /weibo_index { "settings": { "analysis": { "analyzer": { "ik_smart_ext": { "tokenizer": "ik_smart", "filter": [ "bigger_than_2" ] } }, "filter": { "bigger_than_2": { "type": "length", "min": 2 } } } }, "mappings": { "properties": { "title": { "type": "text", "analyzer": "ik_smart_ext", "fielddata": true }, "insert_time": { "type": "date" } } } } ``` 上述代码创建了一个名为 `weibo_index` 的索引,并配置了以下功能: - 使用 `ik_smart` 分词器进行分词。 - 添加了 `bigger_than_2` 过滤器,用于过滤掉小于 2 个字符的分词项。 - 定义了字段 `title` 和 `insert_time`,分别对应文本内容和日期类型的数据[^3]。 ### 重新生成索引并迁移数据 如果已有历史数据存储在其他索引(如 `weibo_index_20220901`)中,可以通过 `_reindex` 操作将数据迁移到新创建索引中: ```json POST _reindex { "source": { "index": "weibo_index_20220901" }, "dest": { "index": "weibo_index_20220904" } } ``` 此操作会将 `weibo_index_20220901` 索引中的所有数据复制到新的 `weibo_index_20220904` 索引中,以便后续在 Kibana 中进行可视化分析[^3]。 ### 注意事项 1. 在创建索引时,确保 Elasticsearch 配置文件 `elasticsearch.yml` 中已正确设置网络访问权限(如 `http.host: 0.0.0.0`),以便允许外部请求。 2. 如果涉及目录映射问题,需保证相关存储路径的权限设置合理,避免因权限不足导致数据写入失败。 3. Elasticsearch 7.x 及以上版本取消了“type”概念,因此在定义映射时无需指定类型名称,直接在 `mappings` 下定义字段属性即可[^2]。 通过上述步骤,可以在 Kibana 8.x 中利用 Elasticsearch 创建索引并优化数据结构,为后续的可视化分析提供支持。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值