首页 > 其他分享 >Elasticearch索引mapping写入、查看、修改

Elasticearch索引mapping写入、查看、修改

时间:2024-11-28 15:24:10浏览次数:7  
标签:Elasticearch 插件 写入 mapping 索引 client Elasticsearch new RestHighLevelClient

作者:京东物流 陈晓娟

一、ES

Elasticsearch是一个流行的开源搜索引擎,它可以将大量数据快速存储和检索。Elasticsearch还提供了强大的实时分析和聚合查询功能,数据模式更加灵活。它不需要预先定义固定的数据结构,可以随时添加或修改数据字段,而不需要进行繁琐的数据库迁移。横向扩展性好,ES的分布式特性,可以简单地将数据水平切分到多个节点上,实现规模的无缝扩展。

二、ES操作

1、postman

在Elasticsearch的早期版本中,用户主要依靠通用的API工具来进行操作和管理。Postman作为一个通用的API测试工具,能够发送各种HTTP请求,包括GET、POST、PUT、DELETE等,用于与Elasticsearch进行交互。由于Elasticsearch通过RESTful API提供服务,Postman成为了一个非常流行的选择‌。

(1)postman创建索引

 

 

‌(2)查询索引

 

 

(3)删除索引

 

 

(4)删除文档

 

 

2、head插件

随着Elasticsearch的发展,Head插件逐渐被开发出来,提供了更多便利的功能。Head插件不仅能够显示集群的拓扑结构,还能执行索引和节点级别的操作,提供了可视化的查询接口,支持JSON验证器等。这些功能使得Head插件成为了管理和操作Elasticsearch的重要工具。

(1)安装head插件

https://blog.51cto.com/u_16099317/10710264

(2)安装浏览器扩展程序

a、https://github.com/tradiff/elasticsearch-head-chrome

b、下载压缩包 解压

c、添加到浏览器扩展程序中,输入连接信息

 

 

三、head插件下索引的增删改查操作

1、创建索引 (PUT/索引名)

DSL语言


{
  "settings": {
//索引的分片数,确定后无法修改,通常一个分片处理20-50G数据
    "number_of_shards": "2",
//每个分片有多少个副本,可动态修改
    "number_of_replicas": "1"
  },
  "mappings": {
    "XXX": {
      "dynamic": "false",
      "_all": {
        "enabled": false
      },
      "properties": {
        "uuid": {
          "type": "keyword"
        },
        "interface_config": {
          "type": "text"
        },...
      }
    }
  }
}

 

 

 

2、查询 (GET/索引名)


GET/dp_test_temp_interface_execution_record_pre 

 

 

3、删除 (DELETE/索引名)


DELETE /userinfo 

GET /userinfo 

 

 

 

4、修改 (PUT/索引名)


PUT /userinfo/ _mapping
{
    "properties": {
        "age": {
          "type": "interger"
        }
    }
}

 

 

四、编辑器与ES服务器的交互

1、创建客户端


 private static RestHighLevelClient createClient() {
        final BasicCredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        credentialsProvider.setCredentials(AuthScope.ANY,
                new UsernamePasswordCredentials("XXX", "XXX"));

        RestClientBuilder builder = RestClient.builder(new HttpHost("XXX", XXX, "http"))
                .setHttpClientConfigCallback(httpClientBuilder ->
                        httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider));

        return new RestHighLevelClient(builder);
    }

2、对创建好的索引进行增删改查操作


RestHighLevelClient client = createClient();
//查询
private static void getDocument(RestHighLevelClient client) throws IOException {
        GetRequest getRequest = new GetRequest("XXX", "pcgat5EBH6d8RU1tFckI");
        GetResponse getResponse = client.get(getRequest, RequestOptions.DEFAULT);
        System.out.println("Get response: " + getResponse.getSourceAsString());
    }
//更新
private static void updateDocument(RestHighLevelClient client) throws IOException {
        Map<String, Object> updateMap = new HashMap<>();
        updateMap.put("message", "Elasticsearch is cool!");

        UpdateRequest updateRequest = new UpdateRequest("posts", "1")
                .doc(updateMap);
        UpdateResponse updateResponse = client.update(updateRequest, RequestOptions.DEFAULT);
        System.out.println("Update response: " + updateResponse.getResult());
    }
//删除
private static void deleteDocument(RestHighLevelClient client) throws IOException {
        DeleteRequest deleteRequest = new DeleteRequest("posts", "pcgat5EBH6d8RU1tFckI");
        DeleteResponse deleteResponse = client.delete(deleteRequest, RequestOptions.DEFAULT);
        System.out.println("Delete response: " + deleteResponse.getResult());
    }

 

标签:Elasticearch,插件,写入,mapping,索引,client,Elasticsearch,new,RestHighLevelClient
From: https://www.cnblogs.com/Jcloud/p/18574343

相关文章

  • Android中使用PDFBox将文本写入到PDF文件中
    在Android中要写入文本,按照网上的使用showText,在showText之前使用moveTo方法无法写入到正确的位置,需要使用Matrix来确定准确的位置和大小下面的代码时将一个包含写入文本和位置的表单数组,将表单数组中的文本写入到PDF对应位置的方法//位置信息classPositionData{varsi......
  • spark 写入mysql 中文数据 显示?? 或者 乱码
    目录前言Spark报错:解决办法:总结一下:报错:解决:前言用spark写入mysql中,查看中文数据显示??或者乱码Spark报错:SatNov2319:15:59CST2024WARN:EstablishingSSLconnectionwithoutserver'sidentityverificationisnotrecommended.AccordingtoMySQL5.......
  • 多层嵌套json字符串(jsonStr)写入redis
    1、连接redisJedisjedis=newJedis("localhost",6379);2、将字符串转为json格式JSONObjectjs=JSONObject.fromObject(jsonStr);3、对json格式进行解析4、将json写入redispublicstaticvoidRedisSet(JSONObjectjs,Jedisjs01){//获取json中的所有key......
  • Mac无法写入U盘怎么解决
    前言​新手使用MacBookPro时,会发现Mac系统下只能读取U盘,但不能写入。其实这个问题是因为,MacOS系统硬盘格式为HFS,Windows的硬盘格式为NTFS,二者互不兼容。那么有没有解决的办法呢?网上的资料一般都安装第三方软件,如 NTFSforMAC 等,但一般都是收费的。或者,格式化U盘,将U盘磁......
  • 服务器数据恢复—SAN环境下LUN Mapping错误导致写操作不互斥,文件系统一致性出错的数据
    服务器数据恢复环境:SAN环境下一台存储设备中有一组由6块硬盘组建的RAID6磁盘阵列,划分若干LUN,MAP到不同业务的SOLARIS操作系统服务器上。服务器故障:用户新增了一台服务器,将存储中的某个LUN映射到新增加的这台服务器上。这个映射的LUN其实之前已经MAP到其他SOLARIS操作系统的服务......
  • git: 报错: no submodule mapping found in .gitmodules for path/位于未检出的子模组
    一,问题的现象:1,安装laravel/ui这个第三方库后,它的文件不出现在未跟踪文件中,如下:liuhongdi@lhdpc:/web/api/vendor/laravel/ui$gitls-files./liuhongdi@lhdpc:/web/api/vendor/laravel/ui$gitls-files././liuhongdi@lhdpc:/web/api/vendor/laravel/ui$lsauth-backe......
  • Python 如何读取和写入文件
    Python如何读取和写入文件文件操作是编程中常见的任务,几乎所有编程语言都支持文件的读写功能。在Python中,文件操作简单直观,适用于从初学者到经验丰富的开发者。无论是处理小型文本文件,还是需要处理大型数据文件,Python提供了丰富的工具和方法来完成这些任务。本文将带......
  • 【字节跳动面试100题精讲】MySQL 索引文件写入磁盘的完整过程
    欢迎您的阅读,接下来我将为您一步步分析:MySQL索引文件写入磁盘的完整过程。让我们通过多个角度来深入探讨这个问题。MySQL索引文件写入磁盘的完整过程关键词:MySQL、索引、B+树、缓冲池、脏页、检查点、双写缓冲、文件系统缓存、磁盘I/O文章目录MySQL索引文件写入磁......
  • 关于IAP操作的实战——利用主程序向FLASH里写入数据
    #1.前言什么是IAP:就是能通过我们写入的程序向FLASH里烧录数据,达到断电记录参数的功能。    列如我所使用的这款芯片SC32M15X,是M0的内核。支持IAP操作,有个IAP操作寄存器,来控制对FLASH的写入。我放以下截图,供大家参考解锁寄存器#2.如何操作IAP我们先需要解锁IA......
  • Andorid+Java使用Apache POI库实现doc、docx、xls、xlsx的读取和写入
    1、前言 最近要用AndroidStudio和Java实现多种文件的导入和读取,包括常见的文本文件txt、doc、docx、xls和xlsx。其中txt用输入输出流操作即可。经过搜索查找,确定了使用ApachePOI库进行其余文件类型的读写。在此记录从开始在apache官网上下载导入包后尝试读取doc便报错,到打......