首页 > 编程语言 >java动态创建es 及mapping

java动态创建es 及mapping

时间:2023-10-24 14:34:19浏览次数:51  
标签:index startObject java dataType builder request mapping 动态创建 es

public CreateIndexResponse createIndexWithMapping(String index, Map<String, String> mapping) {
    CreateIndexResponse response = null;
    try {
        CreateIndexRequest request = new CreateIndexRequest(index);
        request.settings(Settings.builder().put("index.number_of_shards", defaultShards)
                .put("index.number_of_replicas", defaultReplicas));
        request.mapping(generateMapping(mapping));
        response = restHighLevelClient.indices().create(request, RequestOptions.DEFAULT);
    } catch (Exception e) {
        log.error("创建索引[{}]失败", index, e);
    }
    return response;
}

private XContentBuilder generateMapping(Map<String, String> mapping) throws IOException {
    XContentBuilder builder = XContentFactory.jsonBuilder();
    builder.startObject();
    {
        builder.startObject("properties");
        for (Map.Entry<String, String> entry : mapping.entrySet()) {
            {
                builder.startObject(entry.getKey());
                {
                    String dataType=entry.getValue();
                    if(dataType == null || "".equals(dataType.trim())){
                        dataType = "String";
                    }
                    dataType = dataType.toLowerCase();
                    if("string".equals(dataType)){
                        dataType="text";
                    }
                    builder.field("type", dataType);
                }
                builder.endObject();
            }
        }
        builder.endObject();
    }
    builder.endObject();

    return builder;
}

  参考:https://www.cnblogs.com/a-du/p/8807661.html

https://www.zhihu.com/tardis/bd/art/615012104?source_id=1001

标签:index,startObject,java,dataType,builder,request,mapping,动态创建,es
From: https://www.cnblogs.com/first131/p/17784734.html

相关文章

  • Java中的NumberFormatException异常常见原因是什么?
    Java中的NumberFormatException异常常见原因是什么?Java中的NumberFormatException是一种常见的异常,它通常在字符串转换成数值类型时发生。本文将探讨NumberFormatException异常的原因及解决方法。引起NumberFormatException异常的原因:字符串转换成数值类型时格式错误。例如,对于......
  • cesium 3dtile单击选中
    监听瓦片加载完成事件,将所有3dtile对象按id归纳到map中tileset.readyPromise.then(()=>{console.log('tileset.readyPromise');tileset.setObjsColor()})//allTilesLoaded会被调用多次旋转、放大缩小模型时会触发这个事件,不适合用来做一......
  • docker安装ES8.8.1
    1、用docker拉取ES8.8.1的镜像dockerpulldocker.elastic.co/elasticsearch/elasticsearch:8.8.1 2、添加docker网络dockernetworkcreateelastic   3、创建挂载目录,红色部分根据当前实际环境更改目录mkdir-p/usr/local/es/{config,data,logs,plugins}mkdir......
  • Linux配置java和maven环境变量
    修改/etc/profile文件,新增如下代码exportJAVA_HOME=/usr/local/btjdk/jdk8exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexportPATH=$PATH:$JAVA_HOME/binexportM2_HOME=/usr/local/maven/apache-maven-3.9.4exportPATH=$PATH:$M2_HOME/bin刷新/etc/prof......
  • 利用docker安装wordpress
    ubuntu系统没有docker直接snapinstalldocker拉取wordpress镜像dockerpullwordpress:php7.3创建mysql数据文件夹mkdir-p/data/wordpress/运行mysql5.7镜像,没有会直接拉取dockerrun-d--namemy_mysql--restartalways-eMYSQL_ROOT_PASSWORD=redhat-eMYSQL_D......
  • JavaScript在发送AJAX请求时,URL的域名地址是使用绝对地址还是相对地址?
    在使用JavaScript发送AJAX请求时,URL的域名地址通常是使用相对地址。相对地址指的是相对于当前页面的URL来确定请求的目标地址。当请求发送到服务器时,浏览器会自动将相对地址转换为完整的绝对URL。这样做的好处是能够更灵活地处理不同环境下的URL路径,同时减少了在JavaScript代码中......
  • Java List 排序的2种方法
    1. 利用Collections类的java.util.Collections.sort(java.util.List,java.util.Comparator)方法,自定义比较器对象对指定对象进行排序对学生对象按照其分数(降序)进行排序,当分数相同时按学号(从小到大)排序,代码如下:Student类classStudent{ privateintid; privateStringname......
  • Java HashMap类
    HashMap是我们使用非常多的Collection,它是基于哈希表的Map接口的实现,以key-value的形式存在。HashMap实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该......
  • QCN9074-6E Throughput Test Report in DR6018
    IPQ6010+QCN9074|QCN9074-6EThroughputTestReportinDR6018AreyoucuriousabouttheperformancecapabilitiesoftheQCN9074-6EnetworkcardintheDR6018?Looknofurther!Inthisblog,we'llwalkyouthroughthehardwareyou'llneed,howtose......
  • HttpServletRequest客户请求对象详解
    HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息。方法1.获取客户机信息方法声明功能描述StringgetMethod()该方法用于获取HTTP请求消息中的请求方式(如GET、POST......