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. redis 通配符 批量删除key

    Redis 中 DEL指令支持多个key作为参数进行删除 但不支持通配符,无法通过通配符批量删除key,不过我们可以借助 Linux 的管道和 xargs 指令来完成这个动作. 比如要删除所有以use ...

  2. mybatis_入门程序

    Mybatis入门 (一).程序环境 1.jar包 2.classpath目录下建立SqlMapConfig.xml. mybatis的配置文件.全部设置有如下 同时,数据库的参数可以用propert ...

  3. dojo dgrid 的列显示html控件

    var columns = [ { field: "first", label: "First Name", formatter:function(data,o ...

  4. Java NIO学习-详细内容(二)

    五.Selector与SelectionKey Selector是SelectableChannel 对象的多路复用器,为什么使用Selector? 仅用单个线程来处理多个Channels的好处是,只 ...

  5. python中用ElementTree.iterparse()读取xml文件中的多层节点

    我在使用Python解析比较大型的xml文件时,为了提高效率,决定使用iterparse()方法,但是发现根据网上的例子:每次if event == 'end':之后elem.clear()或者是每次 ...

  6. WebCalendar.js

    var cal;   var isFocus=false; //是否为焦点   var pickMode ={       "second":1,       "minu ...

  7. gitignore失效 删除 git commit记录

    已追踪的文件需要清理本地缓存 git rm -r --cached . git add . git commit -m 'update .gitignore' 删除 git commit记录 不小心上 ...

  8. 【转】基于Redis实现延时队列服务

    背景 在业务发展过程中,会出现一些需要延时处理的场景,比如: a.订单下单之后超过30分钟用户未支付,需要取消订单b.订单一些评论,如果48h用户未对商家评论,系统会自动产生一条默认评论c.点我达订单 ...

  9. WinForm中DataGridView的使用(四) - 区分单双击事件

    虽然DataGridView单双击事件都有,但双击事件其实也会触发单击事件的处理,所以如果双击事件和单击事件的行为不同,或者双击时不想触发单击事件,或者单击事件会阻塞双击事件的处理时(比如单击后会有弹 ...

  10. leetcode 23. 合并K个排序链表 JAVA

    题目: 合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例: 输入: [   1->4->5,   1->3->4,   2->6 ] 输出: ...