• Add mappings to an Elasticsearch index in realtime


    Changing mapping on existing index is not an easy task. You may find the reason and possible solutions in here:

    http://www.elasticsearch.org/blog/changing-mapping-with-zero-downtime/


    to get current mapping details, here is the sample code:

     

    ClusterState cs = client.admin().cluster().prepareState().setFilterIndices("myIndex").execute().actionGet().getState();
    IndexMetaData imd = cs.getMetaData().index("myIndex")
    MappingMetaData mdd = imd.mapping("myType")


    Put Mappings In Real time:

     

    private void putMapping() {
        if (client != null) {
           if (client.admin().indices().prepareExists(IndexName).execute().actionGet().isExists()) {
              XContentBuilder mappings = null;
              try {
                 mappings = XContentFactory.jsonBuilder()
    		.startObject()
    		    .startObject(INDEX_TYPE)
    		        .startObject("properties")
    			.startObject(FIELD_NAME)
           			 .field("type","string")
    		      	 .field("store","yes")
    			 .field("index", "analyzed")
    			 .field("analyzer", "simple")
    			.endObject()
    		        .endObject()
    		      .endObject()
    		.endObject();
              } catch (IOException e) {
    	     e.printStackTrace();
              }
              client.admin().indices().prepareClose(IndexName).execute().actionGet();
              client.admin().indices().prepareDeleteMapping(IndexName).setType(INDEX_TYPE).execute().actionGet();
              client.admin().indices().preparePutMapping(IndexName).setIgnoreConflicts(true).setType(INDEX_TYPE).setSource(mappings).execute().actionGet();
    	  client.admin().indices().prepareOpen(IndexName).execute().actionGet();
           }
    
        } else {
    	throw new IllegalStateException(" Elastic Search not initialized properly..");
        }
    }


  • 相关阅读:
    hyper-v使用wifi链接网络
    windows下批量换程序——运维常用
    redis多端口,多实例。
    vs2017 本地IP地址调试 局域网调试
    自动备份
    ipv6无网络访问权限怎么办
    缓存
    学习php
    DateTimeOffset DateTime
    C# 集合
  • 原文地址:https://www.cnblogs.com/riskyer/p/3369549.html
Copyright © 2020-2023  润新知