ElasticSearch的批量传输和增删改查

声明:本文所用测试平台为同盾的ES平台(同盾科技:www.tongdun.cn),部分介绍性文字来源于百度百科

目录

1 批量传输

2 增删改查

2.1 操作工具

2.1.1 ES平台

2.1.2 Linux系统

2.1.3 开发语言(以python为例) 

2.2 数据操作

2.2.1 增

2.2.2 删

2.2.3 改

2.2.4 查​


ES简介:

  1. ES是一个基于RESTful web接口并且构建在Apache Lucene之上的开源分布式搜索引擎
  2. ES还是一个分布式文档数据库,其中每个字段均可被索引,而且每个字段的数据均可被搜索,能够横向扩展至数以百计的服务器存储以及处理PB级的数据
  3. ES在极短的时间内存储、搜索和分析大量的数据。通常作为具有复杂搜索场景情况下的核心发动机

下面我们通过批量传输和增删改查来介绍下ES的相关基础知识

1 批量传输

ES的数据传输分两种,单条传输和批量传输,当然理论上多次单条传输也会有批量传输的效果,只不过会有一种挖耳勺舀水的感觉。。。

  • 单条传输:即下面将要讲的增,可以在ES的web平台写代码,或者linux,python,java等开发语言也可以,这里不再细说
  • 批量传输:最常用的是大数据平台的数据交换,当然也可以通过其他开发语言。ES与大数据平台之间的互相传输见另一篇付费文章(没办法,我也要恰饭的鸭~)啾~这是一个传送点

2 增删改查

ES作为一个极致搜索平台,也可以把它看作是一个数据库,也有增删改查等操作,只不过数据库是以结构化数据来进行相关操作,而ES是json型的半结构化数据

ES的增删改查等操作可以通过很多平台或者脚本来实现,比如es自带的web平台,python,java,shell等开发语言,这里我们以查为例(增删改按下面例子即可)分别简单依据平台,脚本,系统等介绍下

2.1 操作工具

2.1.1 ES平台

ElasticSearch的批量传输和增删改查_第1张图片

使用步骤:

  • 在1里输入IP:PORT,进入ES操作界面,在2里输入_search,代表查询的意思(也可以在PORT后面添加index和type来精准搜索)
  • 在3里选择POST,在4里输入查询json(具体后面讲),5里点击提交请求,便会在6里出现查询结果

2.1.2 Linux系统

使用curl 这个命令来实现

curl -X POST  http://xx.xx.xx.xx:xxxx/xxxxx/xxxx/xx -d 
 
{
  "query": {
    "bool": {
      "must": [
        {
          "xxx": {
            "xxx.keyword": "xxxx"
          }
        },
        {
          "range": {
            "transtime.keyword": {
              "from": "2020-05-05 00:00:00",
              "to": "2020-04-15 11:00:00"
            }
          }
        }
      ]
    }
  },
  "from": 0,
  "size": 10,
  "sort": {
    "transtime.keyword": {
      "order": "desc"
    }
  }
}

2.1.3 开发语言(以python为例) 

使用request包来实现

import requests
 
'''
目录类型Content-Type分为四种
application/x-www-form-urlencoded(这也是默认格式)、application/json、text/xml以及multipart/form-data格式
我们这里采用第一种默认格式:数据之间使用&来连接
'''
headers = {'Content-Type':'application/x-www-form-urlencoded','Content-Length': '256'}
 
# result1是一个列表,这样写是展现逐条发送数据的场景   
for i in range(len(result1)):
    # 拼接传输数据
    datas = "id=%s&name=781&time=%s" % (result1[i][1],result1[i][3])
    # 开始post传输数据
    r     = requests.post("http://xx.xx.xx.xx:9010",datas)
    
    # 输出传送数据               
    print(r.text)
    # 输出传送结果状态代码
    print(r.status_code)

2.2 数据操作

下面的所有操作我们都在ES平台上来实现,其他诸如Linux,python方式与之相同

2.2.1 增

选择好URL,指定主键,在输入框里放入所有键值,选择post,如有一个表是lstatus,lsubtype,strvalidtime,要把这三个字段值全部填完,如下,否则系统会默认为空。这里需要注意的是指定的主键必须是新增的主键,否则会变成2.2.3的改,即对于es来说,主键已存在的值是修改,主键不存在的是新增

ElasticSearch的批量传输和增删改查_第2张图片

 

2.2.2 删

指定主键,选择delete,无需填任何值,直接删除即可(数据删除不可恢复,请谨慎操作)

ElasticSearch的批量传输和增删改查_第3张图片

2.2.3 改

详见2.2.1,是主键的存在与否

ElasticSearch的批量传输和增删改查_第4张图片

2.2.4 查

这个步骤的可操作性就非常高,本身es也是主要做查询搜索

填好IP,index,type,选择_search,选择POST方式

在文本框里填好代码

tips:可选择易读,让json格式更加清晰明了

有两个搜索匹配方式:

  • wildcard:通配方式,类似于sql里的like
  • prefix:类似于sql里的=

ElasticSearch的批量传输和增删改查_第5张图片

 

 

你可能感兴趣的:(大数据弄潮儿)