ES添加数据:从基础到进阶

ES(ElasticSearch)是一个高可用性、可扩展性的开源全文搜索及分析引擎。在大数据环境下,它是一种性能强大、可扩展的分布式系统,能够管理和分析PB级别的数据。ES是基于Lucene库的,在数据分析、搜索引擎等领域被广泛应用。

一、es添加数据到索引命令

将数据添加到ES中,需要先创建索引。索引是对存储在ES中数据的逻辑分组,类似于关系型数据库中的表。在创建索引时,需要定义其相关映射,包括字段名称、数据类型等。

PUT /index
{
  "mappings": {
    "properties": {
      "field1": {"type": "text"},
      "field2": {"type": "integer"}
    }
  }
}

以上代码中,创建了一个名为“index”的索引,并定义了两个属性“field1”和“field2”,分别为文本类型和整数类型。

创建索引后,可以通过PUT命令将数据添加到索引中:

PUT /index/_doc/1
{
  "field1": "value1",
  "field2": 123
}

以上代码中,将数据添加到名为“index”的索引中,其中“1”为数据ID,字段“field1”的值为“value1”、字段“field2”的值为“123”。

二、es索引添加数据

1. 单条添加数据

在ES中添加单条数据,可以使用PUT命令,格式为:PUT /index/_doc/{id}。

PUT /index/_doc/1
{
  "field1": "value1",
  "field2": 123
}

以上命令在名为“index”的索引中,添加了一条ID为“1”的数据,其中“field1”的值为“value1”、“field2”的值为“123”。

2. 批量添加数据

在批量添加数据时,可以使用Bulk API。首先需要创建一个包含多条数据的JSON文件,如下所示:

{ "index" : { "_index" : "index", "_id" : "1" } }
{ "field1": "value1", "field2": 123 }
{ "index" : { "_index" : "index", "_id" : "2" } }
{ "field1": "value2", "field2": 456 }

以上代码中,定义了两条数据,分别为ID为“1”的数据和ID为“2”的数据。

然后,使用以下命令将文件中的数据批量添加到ES中:

POST _bulk
{data}

其中,{data}为包含多条数据的JSON文件内容。

三、es添加数据时时间存不进去

如果添加数据时,时间属性无法存储到ES中,可能存在多种原因。其中一个可能的原因是,时间属性和ES中已有的时间类型不兼容,需要将格式进行转换。

例如,如果ES中的时间格式为yyyy-MM-dd HH:mm:ss,而添加的数据中的时间格式为yyyy/MM/dd HH:mm:ss,可以使用以下方法进行转换:

PUT /index/_doc/1
{
  "field1": "value1",
  "field2": 123,
  "time": {
    "date": "2021/11/11",
    "time": "10:10:10"
  }
}

以上代码中,在添加数据时,将时间属性拆分为“date”和“time”两个属性进行添加。

四、cass添加数据

Cass(Cassandra)是另一个分布式结构化数据存储系统,可以管理大量非结构化和结构化数据。与ES不同,Cass的数据模型是基于列家族的,类似于关系型数据库中的列,可以对数据进行添加、修改、删除和查询等操作。

在Cass中添加数据,可以使用以下命令:

INSERT INTO table_name (field1, field2) VALUES ('value1', 123);

以上代码中,将数据添加到名为“table_name”的表中,其中字段“field1”的值为“value1”、字段“field2”的值为“123”。

五、es批量添加数据

在ES中批量添加数据,可以使用Bulk API。首先需要创建一个包含多条数据的JSON文件,格式如下:

{ "index" : { "_index" : "index", "_id" : "1" } }
{ "field1": "value1", "field2": 123 }
{ "index" : { "_index" : "index", "_id" : "2" } }
{ "field1": "value2", "field2": 456 }

然后,使用以下命令将文件中的数据批量添加到ES中:

POST _bulk
{data}

其中,{data}为包含多条数据的JSON文件内容。

六、es删除数据

在ES中删除数据,可以使用DELETE命令。格式为DELETE /index/_doc/{id}。

DELETE /index/_doc/1

以上代码中,删除了名为“index”索引中ID为“1”的数据。

七、es如何添加数据访问权限

在ES中添加数据访问权限,可以通过角色和用户来实现。首先需要创建一个角色,定义该角色的权限范围和操作方式。然后,给该角色分配一个或多个用户。

以下是一个创建角色并给该角色分配用户的例子:

PUT /_security/role/my_role
{
  "cluster": ["monitor"],
  "indices": [
    {
      "names": ["index1", "index2"],
      "privileges": ["read"]
    }
  ]
}

POST /_security/user/user1
{
  "password" : "password",
  "roles" : [ "my_role" ]
}

以上代码中,创建了名为“my_role”的角色,该角色可以监控ES集群并对“index1”和“index2”索引进行读操作。然后,创建了一个名为“user1”的用户并将“my_role”角色分配给该用户。

通过以上步骤,即可实现在ES中添加数据访问权限。

结语

本文详细介绍了从基础到进阶的ES添加数据方法,包括索引和数据的创建、添加、查找和删除等操作。同时,还介绍了添加数据时可能会遇到的问题,以及如何实现数据访问权限的管理。希望能够对大家在ES项目中的数据管理和分析工作有所启发和帮助。

原创文章,作者:BWJY,如若转载,请注明出处:https://www.506064.com/n/134842.html

(0)
BWJYBWJY
上一篇 2024-10-04
下一篇 2024-10-04

相关推荐

  • solidworks如何参考零件,solidworks标准件怎么用

    本文目录一览: 1、solidworks草图标注尺寸怎么参考实体平面 2、求助:solidworks中怎样才能把零件插入到其他零件中 3、solidworks 装配体如何参照一个零…

    编程 2024-10-04
  • cmddir详解

    一、基本介绍 cmddir是Windows下的一个命令,用于显示指定目录下的文件列表和子目录。 使用cmddir命令可以列出指定目录下的所有文件和文件夹,同时还可以列出有关这些文件…

    编程 2024-10-10
  • jsp制作网页实例,jsp实例教程

    本文目录一览: 1、jsp网页制作 2、如何用jsp制作一个网站 3、写一个JSP页面 jsp网页制作 jsp要在服务器下运行,否则java不编译。这时,浏览器只解释html(你说…

    编程 2024-10-03
  • mysql数据库如何移动(mysql数据上移下移)

    1、急:我的MYSQL数据库装在C盘的,怎么移到D盘啊? 2、如何迁移MySQL数据库 3、Linux Mysql如何移动MySQL数据库目录位置? 4、mysql数据库如何转移呢…

    编程 2024-10-03
  • Android逆向助手:从使用到源码解析

    Android逆向助手是一款针对Android应用逆向工程的软件。它能够帮助开发者获取apk包中的代码、资源和配置信息等,并进一步修改、重打包等操作。这篇文章将从使用到源码解析,从…

    编程 2024-10-04
  • java服务器,java服务器部署

    本文目录一览: 1、如何创建基本的Java服务器 2、java用什么服务器 3、java 服务器代码倒出来,就是源码吗? 4、java服务器开发是做什么?和web端的区别是什么? …

    编程 2024-10-04
  • Eureka集群配置详解

    一、Eureka集群配置介绍 Eureka是Netflix开源的一款服务注册与发现工具,它可以实现服务之间的互相发现和注册,为微服务的实现提供了很大的便利。在微服务架构中,服务会以…

    编程 2024-10-08
  • postman上传文件和json参数的简单介绍

    本文目录一览: 1、postman怎么发送json参数 2、postman如何导入json文件 3、json和普通字段怎么一起传 4、postman 怎么提交json数据 5、po…

    编程 2024-10-03
  • qemu-kvm详解

    一、qemu-kvm源码解析与应用 1、qemu-kvm是一个开放源代码的虚拟机监视器,它可以将物理计算机模拟成多个虚拟机,每个虚拟机都有自己的操作系统和硬件设备。为了实现虚拟化,…

    编程 2024-10-03
  • 怎么将图层置于底层,怎么将图层置于底层显示

    本文目录一览: 1、id图层怎么置于底层 2、photoshop怎样把当前图层移到最底层 3、怎样把PS图层置于下层 4、PS时如何把图层至于最底层,并且可以显现出来 5、CAD中…

    编程 2024-10-04

发表回复

登录后才能评论