• java elasticsearch index


    es版本6.8.*及以下,7.9.*不适用。

    直接贴代码

    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    import java.util.concurrent.ExecutionException;
    
    import org.elasticsearch.action.ActionFuture;
    import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
    import org.elasticsearch.action.admin.indices.delete.DeleteIndexResponse;
    import org.elasticsearch.action.admin.indices.stats.IndexStats;
    import org.elasticsearch.action.admin.indices.stats.IndicesStatsRequest;
    import org.elasticsearch.action.admin.indices.stats.IndicesStatsResponse;
    import org.elasticsearch.client.IndicesAdminClient;
    import org.elasticsearch.client.transport.TransportClient;
    import org.elasticsearch.cluster.node.DiscoveryNode;
    import org.elasticsearch.common.Strings;
    import org.elasticsearch.common.xcontent.XContentBuilder;
    import org.elasticsearch.common.xcontent.XContentFactory;
    import org.junit.After;
    import org.junit.Before;
    import org.junit.Test;
    
    /**
     * 定义es index格式
     * 
     * @author zhanchaohan
     * @see https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-docs-index.html
     */
    public class index {
        private TransportClient client;
    
        @Before
        public void init() throws FileNotFoundException, IOException {
            ElasticConfig ec = new ElasticConfig();
            client = ec.init();
        }
    
        @After
        public void destroy() {
            if (client != null) {
                client.close();
            }
        }
    
        @Test
        public void testIndex() throws IOException {
            // json
            String json = "{" + ""user":"kimchy"," + ""postDate":"2013-01-30","
                    + ""message":"trying out Elasticsearch"" + "}";
            // 通过Map
            Map<String, Object> mapJson = new HashMap<String, Object>();
            mapJson.put("user", "kimchy");
            mapJson.put("postDate", new Date());
            mapJson.put("message", "trying out Elasticsearch");
            // Jackson实现
    //        ObjectMapper mapper = new ObjectMapper(); // create once, reuse
    //        byte[] json = mapper.writeValueAsBytes(yourbeaninstance);
    
            // 官方给出的对象实现
            XContentBuilder builder = jsonBuilder();
            String builderJson = Strings.toString(builder);
            System.out.println(builderJson);
        }
    
        private XContentBuilder jsonBuilder() throws IOException {
            XContentBuilder builder = XContentFactory.jsonBuilder().startObject().startObject("properties")
                    .startObject("user").field("type", "string").field("index", "not_analyzed").endObject()
                    .startObject("postDate").field("type", "date").endObject().startObject("message")
                    .field("type", "string").field("index", "not_analyzed").endObject().startObject("address")
                    .field("type", "string").endObject().startObject("carPsc").field("type", "string").field("index", "ik")
                    .endObject().endObject().endObject();
            return builder;
        }
    
        /***
         * 获取全部节点
         */
        @Test
        public void discoveryNode() {
            List<DiscoveryNode> dnList = client.listedNodes();
            for (DiscoveryNode discoveryNode : dnList) {
                System.out.println(discoveryNode.getHostName());
            }
        }
    
        /***
         * 获取索引
         */
        @Test
        public void getIndex() {
            ActionFuture<IndicesStatsResponse> isr = client.admin().indices().stats(new IndicesStatsRequest().all());
            IndicesAdminClient indicesAdminClient = client.admin().indices();
            Map<String, IndexStats> indexStatsMap = isr.actionGet().getIndices();
            Set<String> set = isr.actionGet().getIndices().keySet();
    
            for (String key : set) {
                System.out.println("索引名称:" + key);
            }
        }
    
        /***
         * 删除全部索引
         * @throws ExecutionException 
         * @throws InterruptedException 
         */
        @Test
        public void deleteAllIndex() throws InterruptedException, ExecutionException {
            ActionFuture<IndicesStatsResponse> isr = client.admin().indices().stats(new IndicesStatsRequest().all());
            Set<String> set = isr.actionGet().getIndices().keySet();
    
            for (String key : set) {
                DeleteIndexResponse deleteIndexResponse= client.admin().indices().prepareDelete(key).execute().get();
            
                System.out.println(key+":	"+deleteIndexResponse.isAcknowledged());
            }
    
        }
    
        /***
         * 删除指定索引
         */
        @Test
        public void deleteIndex() {
            ActionFuture<DeleteIndexResponse> dResponse = client.admin().indices()
                    .delete(new DeleteIndexRequest("ui_template"));
            DeleteIndexResponse deleteIndexResponse = dResponse.actionGet();
    
            System.out.println(deleteIndexResponse.isAcknowledged());
        }
    }
  • 相关阅读:
    Postman使用
    Java-性能调优-理解GC日志
    Java-性能调优实战(jps、jstack)
    Java-性能调优工具-jstat
    Java-内存模型
    生产者消费者JAVA实现
    Java-GC垃圾收集器
    JAVA-JVM垃圾回收算法
    Java线程状态流转---线程
    【洛谷5072】[Ynoi2015] 盼君勿忘(莫队)
  • 原文地址:https://www.cnblogs.com/zhanchaohan/p/14668868.html
Copyright © 2020-2023  润新知