fd dg

public Map<String, Map<String, String>> javaBeanToMapping(Object instance, List<String> textMappingList, Map<String, String> nestedMappingMap) {
        Field field;
        Map<String, Map<String, String>> fieldMaps = new HashMap<>();
        Class information = instance.getClass();
        Field[] fields = information.getDeclaredFields();

        for (int i = 0; i < fields.length; i++) {
            field = fields[i];
            Map<String, String> fieldMap = new HashMap<>();
            if (CommonFuctions.isNotEmptyList(textMappingList) && textMappingList.contains(field.getName())) {
                fieldMap.put("type", "text");
                fieldMap.put("analyzer", EsConstant.ES_ANALYSIS_IK);
                fieldMap.put("search_analyzer", EsConstant.ES_ANALYSIS_IK_SMART);
                fieldMaps.put(field.getName(), fieldMap);
            } else if (nestedMappingMap != null && nestedMappingMap.containsKey(field.getName())) {
                fieldMap.put("type", "nested");
                fieldMap.put(EsConstant.ES_NESTED_PROPERTIES, nestedMappingMap.get(field.getName()));
                fieldMaps.put(field.getName(), fieldMap);
            } else if ("class java.lang.String".equals(field.getType())) {
                fieldMap.put("type", "keyword");
                fieldMaps.put(field.getName(), fieldMap);
            } else if ("class java.lang.Integer".equals(field.getType().toString())) {
                fieldMap.put("type", "integer");
                fieldMaps.put(field.getName(), fieldMap);
            } else if ("class java.lang.Float".equals(field.getType().toString())) {
                fieldMap.put("type", "float");
                fieldMaps.put(field.getName(), fieldMap);
            } else if ("class java.lang.Double".equals(field.getType().toString())) {
                fieldMap.put("type", "double");
                fieldMaps.put(field.getName(), fieldMap);
            } else if ("class java.util.Date".equals(field.getType().toString())) {
                fieldMap.put("type", "date");
                fieldMap.put("format", "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd'T'HH:mm:ss||epoch_millis");
                fieldMaps.put(field.getName(), fieldMap);
            } else if (field.getType().toString().contains("[")) {
                fieldMap.put("type", "array");
                fieldMaps.put(field.getName(), fieldMap);
            } else if ("interface java.util.List".equals(field.getType().toString())) {
                fieldMap.put("type", "keyword");
                fieldMaps.put(field.getName(), fieldMap);
            } else {
                fieldMap.put("type", "keyword");
                fieldMaps.put(field.getName(), fieldMap);
            }
        }
        return fieldMaps;
    }

es put mapping的更多相关文章

  1. ES创建mapping时字段别名

    ES默认是动态创建索引和索引类型的mapping的,但是在学习的时候还能这样用,在生产中一定是手动制定mapping!在生产中经常会遇到这样的需求,想用某个字段进行统计,又想对该字段进行模糊查询,解决 ...

  2. es的mapping设置

    自定义mapping的api PUT test_index { "mappings": { #mappings关键字 "doc": { #type " ...

  3. ES 创建mapping

    mapping的写入与查看首先创建一个索引: curl -XPUT "http://erp2.es.kd1.pagoda.com.cn:80/erp_stock_index"{&q ...

  4. [Elasticsearch] ES 的Mapping 设计在实际场景中应用

    背景 项目中有个需求是需要几个字段作为标签,统计各个标签的文档数量,同时支持分词后的全文检索功能. 原有的mapping设计: curl -XPUT http://ip:9200/meta_es_me ...

  5. es 修改 mapping 字段类型

    一.原索引 PUT my_index { "mappings": { "_doc": { "properties": { "cre ...

  6. ES mapping映射及优化

    mapping映射 主要类型: 同一index下,不同type中如果有相同filed:es进行mapping映射的时候,按照先写进去的指定类型:比如同一index,包含的type中都有key1字段,如 ...

  7. elasticsearch 之mapping

    搭好elk 后,有时候会发现kibana 统计数据时,数据类型不对,这个时候就和elasticsearch的mapping有关,虽然我们可以用logstash修改传入es里的数据类型,比如 float ...

  8. es搜索引擎

    1.es简介 2.es优缺点 3.es使用 4.es可以解决的问题 5.es举例 6.es执行结果截图 7.es数据增量方案 8.使用es搜索 一.es简介 es是一个是一个实时的分布式搜索和分析引擎 ...

  9. ES 08 - 创建、查看、修改、删除、关闭Elasticsearch的index

    目录 1 创建index(配置mapping[映射]) 2 查看index 3 修改index 4 删除index 5 打开/关闭index 6 常见问题及解决方法 index相当于RDBMS(关系型 ...

随机推荐

  1. [GO]方法值和方法表达式

    package main import "fmt" type Person struct { name string sex byte age int } func (p Pers ...

  2. windows安装MongoDB进度条卡住,window安装mongo系统错误 2,系统错误5的解决办法(转载)

    windows安装MongoDB进度条卡住,window安装mongo系统错误 2,系统错误5的解决办法 转自:https://www.cnblogs.com/sufferingStriver/p/m ...

  3. javascript总结37:DOM:innerText 和 innerHTML

    innerText 和 innerHTML 作用: 给双标签的元素设置内容/获取双标签里面的内容 不同点: innerText 只是用于获取文本或设置文本 innerHTML 不仅可以用于设置/获取文 ...

  4. Introduction MBG

    文档地址 http://www.mybatis.org/generator/configreference/xmlconfig.html 源码地址 https://github.com/mybatis ...

  5. (转)走进AngularJs(六) 服务

    原文地址:http://www.cnblogs.com/lvdabao/p/3464015.html 今天学习了一下ng的service机制,作为ng的基本知识之一,有必要做一个了解,在此做个笔记记录 ...

  6. Mac下默认JDK路径

    2.JDK8以及JDK7安装的默认路径为:/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk

  7. java-设计模式汇总整理

    最近,对各种模式做了一个整理,便于后续自用. 1.工厂模式 总结:很好理解,一个接口,2个类实现这个接口,那么可以用“接口 变量=new 接口实现类”的方式调用不同的实现类,调用方式直接使用接口的方法 ...

  8. Java50道经典习题-程序4 分解质因数

    题目:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5.分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经 ...

  9. android开发内存优化之软引用

    所有Android的开发者一定都遇到过内存溢出这个头疼的问题,一旦出现这个问题,很难直接确定我们的应用是那里出了问题,要想定位问题的原因,必须通过一些内存分析工具和强大的经验积累才能快速的定位到问题具 ...

  10. Spring MVC 基本配制

    WEB.XML 文件中的配制: <?xml version="1.0" encoding="UTF-8"?> <web-app id=&quo ...