Elasticsearch简单使用


简单介绍

本人也是刚刚使用ES,仅对做简单使用,未深究。数据类型、集群安装、详细命令、Logstash、参数等均为提及

  1. Elasticsearch 可以理解为一个数据库管理系统,等价MySQL。
  2. 可以创建多个索引,等价mysql的一个数据库
  3. 每个索引可以创建多个文档, 等价mysql一个数据库的一个表
  4. 每个索引可以创建多个字段,等价mysql一个数据库的一个表的字段
  5. 每个字段都被索引并可被搜索
  6. 可以扩展到上百台服务器,处理PB级结构化或非结构化数据
  7. 采用倒排索引的策略
  8. 采用RESTful API 隐藏 Lucene 的复杂性

一、Elasticsearch倒排索引

将文档内容进行索引,后面的Document代表该条记录的ID值,也就是整条数据,比如找到了Term中butterfly就找到了Document1了
在这里插入图片描述

二、windows安装

1、windows无需安装,解压后进入elasticsearch-7.3.2-windows-x86_64\elasticsearch-7.3.2\bin目录,双击elasticsearch.bat即可

在这里插入图片描述

2、出现started后即服务启动完成,地址为127.0.0.1:9200

在这里插入图片描述

3、进入kibana-7.3.2-windows-x86_64\bin 双击 kibana.bat

在这里插入图片描述

4、出现 Server running at http://localhost:5601 后运行完成

在这里插入图片描述

5、进入http://localhost:5601

在这里插入图片描述

6、打开开发界面

在这里插入图片描述

7、即ES+kibana运行完成

三、索引管理

1. 规划分片结构

有两个数据节点,设置4个分片。 因为对数据安全不高,每个分片对应0个副本 。

2. 需要保存的json格式
{
  "L11": "美丽的祖国",
  "L12": {
    "L12_1": 20220707123456,
    "L12_2": "这是一个美好的世界,编程快乐",
    "L12_3": "你好 ES,你好 Kibana  ",
    "L12_4": 20210707123456
  },
  "L13": 20220307123456
}
3. 对应的索引结构
PUT /demo_v1
{
  
  "settings": { 
    "index":{
      "number_of_shards":4,  //分片数量,∑分片=总数据量 默认5个分片 建议为节点的2到3倍,每个分片<50G
      "number_of_replicas":0  //每个分片对应副本数量
    }
  },
  "mappings": { 
    "properties": {
      "L1": { 
        "properties": {
          "L11": {
            "type": "text",  
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          //对L11字段做text分词,同时对分词内容做keyword索引
          
          
          "L12": {
            "properties": {
              "L12_1": {
                "type": "long"
              },
              //long类型可以直接索引
              "L12_2": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              },
              "L12_3": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              },
              "L12_4": {
                "type": "long"
              }
            }
          },
          "L13": {
            "type": "long"
          }
        }
      }
    }
  }
}
4. 执行后创建成功

在这里插入图片描述

5. 删除索引

在这里插入图片描述

四、数据增删查

1. 数据上传

注: _doc为默认文档(表)

post /demo_v1/_doc
{
  "L1": {
    "L11": "我爱你,中国",
    "L12": {
      "L12_1": 20220707123456,
      "L12_2": "这是一个美好的时间,编程快乐",
      "L12_3": "你好 ES ",
      "L12_4": 20210707123456
    },
    "L13": 20220307123456
  }
}

在这里插入图片描述

2. 数据删除

注:wait_for_completion=false 代表后台删除,返回一个任务id,对大数据量删除特别好使

POST /demo_v1/_delete_by_query?wait_for_completion=false
{
  "query": {
    "bool": {
      "must": [
        {
          "range": {
            "L1.L12.L12_1": {
            "gte": 20220707123456,    //大于等于
             "lte": 20220707123456     //小于等于
            }
          }
        }
      
    }
  }
}

get /_tasks/SC_w5G_cRuyUSPPPLf9Dww:45573

注: "completed" : true代表执行完成

3. 数据查找
POST /demo_v1/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "range": {
            "L1.L12.L12_1": {
              "gte": 20220707123456,
              "lte": 20220707123456
            }
          }
        }
      ]
    }
  }
}

在这里插入图片描述

五、Shell脚本删除数据

1. 将要删除的请求复制为URL

在这里插入图片描述
即:

curl -XPOST "http://localhost:9200/demo_v1/_delete_by_query?wait_for_completion=false" -H 'Content-Type: application/json' -d'{  "query": {    "bool": {      "must": [        {          "range": {            "L1.L12.L12_1": {              "gte": 20220707123456,              "lte": 20220707123456            }          }        }      ]    }  }}'

vim delete_es.sh

delete_tm_start=$(date "+%Y%m%d%H%M%S")
delete_tm_end=$(date "+%Y%m%d%H%M%S")


curl  --user  用户名:密码 -XPOST "http://localhost:9200/demo_v1/_delete_by_query?wait_for_completion=false" -H 'Content-Type: application/json' -d '{"query": {"bool": {"must": [{"range": {"L1.L12.L12_1": {"gte": '$delete_tm_start',"lte": '$delete_tm_end'}}}]}}}'

chmod +x delete_es.sh 后即可进行crontab调度删除

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值