国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

java用es客戶端創(chuàng)建索引

這篇具有很好參考價值的文章主要介紹了java用es客戶端創(chuàng)建索引。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

先用java創(chuàng)建esClient

package com.ws.es.config;
import com.ws.util.PropertiesUtil;
import org.apache.http.Header;
import org.apache.http.HttpHost;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.message.BasicHeader;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.elasticsearch.client.Node;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;

import java.util.ArrayList;
import java.util.List;

public class ElasticSearchConfig {

    private static final Logger LOGGER = LogManager.getLogger(ElasticSearchConfig.class);

    /**
     * elk集群地址
     */
    private static String esServerHost = PropertiesUtil.getProperty("es.ServerHost");

    private static Integer connectTimeout = Integer.parseInt(PropertiesUtil.getProperty("es.connectTimeout"));

    private static Integer socketTimeout = Integer.parseInt(PropertiesUtil.getProperty("es.socketTimeout"));

    private static Integer connectionRequestTimeout = Integer
            .parseInt(PropertiesUtil.getProperty("es.connectionRequestTimeout"));

    private static Integer maxConnPerRoute = Integer.parseInt(PropertiesUtil.getProperty("es.maxConnPerRoute"));

    private static Integer maxConnTotal = Integer.parseInt(PropertiesUtil.getProperty("es.maxConnTotal"));

    private static boolean isSecureMode = Boolean.parseBoolean(PropertiesUtil.getProperty("es.isSecureMode"));

    /**
     * Bean name default 函數(shù)名字
     *
     * @return
     */
    public static RestClient restClient() {
        LOGGER.info("Elasticsearch初始化開始。。。。。");
        RestClientBuilder restClientBuilder = getRestClientBuilder();
        RestClient restClient = restClientBuilder.build();
        setNodes(restClient);
        LOGGER.info("The Low Level Rest Client has been created.");
        return restClient;
    }

    private static RestClientBuilder getRestClientBuilder() {
        HttpHost[] hostArray = getHostArray();
        if (!isSecureMode) {
            System.setProperty("es.security.indication", "false");
        } else {
            setSecConfig();
        }

        RestClientBuilder builder = RestClient.builder(hostArray);
        Header[] defaultHeaders = new Header[] { new BasicHeader("Accept", "application/json"),
                new BasicHeader("Content-type", "application/json") };
        builder.setRequestConfigCallback(new RestClientBuilder.RequestConfigCallback() {
            @Override
            public RequestConfig.Builder customizeRequestConfig(RequestConfig.Builder requestConfigBuilder) {
                return requestConfigBuilder.setConnectTimeout(connectTimeout).setSocketTimeout(socketTimeout)
                        .setConnectionRequestTimeout(connectionRequestTimeout);
            }
        }).setMaxConnPerRoute(maxConnPerRoute).setMaxConnTotal(maxConnTotal);
        builder.setDefaultHeaders(defaultHeaders);
        return builder;
    }

    private static void setNodes(RestClient restClient) {
        List<Node> nodes = new ArrayList();
        HttpHost[] var3 = getHostArray();
        int var4 = var3.length;

        for (int var5 = 0; var5 < var4; ++var5) {
            HttpHost httpHost = var3[var5];
            nodes.add(new Node(httpHost));
        }
        restClient.setNodes(nodes);
    }

    private static HttpHost[] getHostArray() {
        String schema;
        if (!isSecureMode) {
            schema = "http";
        } else {
            schema = "https";
        }
        List<HttpHost> hosts = new ArrayList();
        String[] hostArray1 = esServerHost.split(",");
        String[] var4 = hostArray1;
        int var5 = hostArray1.length;

        for (int var6 = 0; var6 < var5; ++var6) {
            String host = var4[var6];
            String[] ipPort = host.split(":");
            HttpHost hostNew = new HttpHost(ipPort[0], Integer.parseInt(ipPort[1]), schema);
            hosts.add(hostNew);
        }

        return (HttpHost[]) hosts.toArray(new HttpHost[0]);
    }

    private static void setSecConfig() {
        try {
            System.setProperty("elasticsearch.kerberos.jaas.appname", "EsClient");
            System.setProperty("es.security.indication", "true");
        } catch (Exception var2) {
        }

    }
}

創(chuàng)建es索引模板

 public static void cateteTemplateNonMotor(RestClient restClient) {
        Map<String, String> params = Collections.singletonMap("pretty", "true");
        JSONObject json = new JSONObject();
        JSONObject settings = new JSONObject();
        json.put("template", "索引的模板前綴加*號例123*");
        settings.put("number_of_shards", "" + 分片數(shù)例2 + "");
        settings.put("number_of_replicas", "" + 副本數(shù)例1 + "");
        settings.put("max_result_window", "100000000");
        json.put("settings", settings);
        JSONObject mappings = new JSONObject();
        JSONObject clgjxx = new JSONObject();
        JSONObject properties = new JSONObject();
        properties.put("1", JSONObject.parse("{\"type\":\"keyword\"}"));// 
        properties.put("2", JSONObject.parse("{\"type\":\"keyword\"}"));// 
        properties.put("3", JSONObject.parse("{\"type\":\"keyword\"}"));// 
        properties.put("4", JSONObject.parse("{\"type\":\"keyword\"}"));// 
        properties.put("5", JSONObject.parse("{\"type\":\"keyword\"}"));// 
        properties.put("6", JSONObject.parse("{\"type\":\"keyword\"}"));// 
        properties.put("7", JSONObject.parse("{\"type\":\"keyword\"}"));// 
        properties.put("8", JSONObject.parse("{\"type\":\"keyword\"}"));//
        properties.put("9", JSONObject.parse("{\"type\":\"keyword\"}"));// 
        properties.put("10", JSONObject.parse("{\"type\":\"date\",\"format\":\"yyyyMMddHHmmss\"}"));// 經(jīng)過時刻
        properties.put("11", JSONObject.parse("{\"type\":\"date\",\"format\":\"yyyyMMddHHmmss\"}"));// 入庫時間
        properties.put("12", JSONObject.parse("{\"type\":\"keyword\"}"));// 
        clgjxx.put("properties", properties);
        mappings.put("doc", xxxx);
        json.put("mappings", mappings);
        String jsonString = json.toString();
        System.out.println(jsonString);
        HttpEntity entity = new NStringEntity(jsonString, ContentType.APPLICATION_JSON);
        Response response = null;
        try {
            response = restClient.performRequest("PUT", "/_template/123_temp", params, entity);
            System.out.println(
                    "createIndexWithShardNum,response entity is : " + EntityUtils.toString(response.getEntity()));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

新建索引

   public static void add(RestClient restClient, String jsonString) {
        Map<String, String> params = Collections.singletonMap("pretty", "true");
        HttpEntity entity = new NStringEntity(jsonString, ContentType.APPLICATION_JSON);
        Response response = null;
        try {

            response = restClient.performRequest("PUT", "/123_202303", params, entity);
            if (HttpStatus.SC_OK == response.getStatusLine().getStatusCode()
                    || HttpStatus.SC_CREATED == response.getStatusLine().getStatusCode()) {
                // LOG.info("putData,response entity is : " +
                // EntityUtils.toString(response.getEntity()));
                System.out.println(新建ES索引成功!");
            } else {
                System.out.println("新建ES索引失敗!");
                // Assert.fail();
            }
        } catch (Exception e) {
            e.printStackTrace();
            // Assert.fail();
        }
    }

}

批量插入數(shù)據(jù)

1.先批量生成數(shù)據(jù)
JSONObject message = new JSONObject();
            message.put("1", json.get("1"));// 
            //message.put("2", 2);// 
            message.put("3", sf1.format(now));// 入庫時間
            //message.put("4", json.get("4"));// 觸發(fā)時間
            message.put("5", json.get("5"));// 
            message.put("6", json.get("6"));
            //message.put("7", json.get("7"));
            
 JSONObject title = JSONObject.parseObject(
                    "{\"create\":{\"_index\":\"" + index + "\",\"_type\":\"doc\",\"_id\":\"" + rowkey + "\"}}");

            if (message.size() > 0) {
                sb.append(title.toJSONString()).append("\n");
                sb.append(message.toJSONString()).append("\n");
            }
            EsRestUtils.add(restClient, sb.toString());
2批量導(dǎo)入方法
 public static void add(RestClient restClient, String jsonString) {
        Map<String, String> params = Collections.singletonMap("pretty", "true");
        HttpEntity entity = new NStringEntity(jsonString, ContentType.APPLICATION_JSON);
        Response response = null;
        try {

            response = restClient.performRequest("POST", "/doc/_bulk", params, entity);
            if (HttpStatus.SC_OK == response.getStatusLine().getStatusCode()
                    || HttpStatus.SC_CREATED == response.getStatusLine().getStatusCode()) {
                // LOG.info("putData,response entity is : " +
                // EntityUtils.toString(response.getEntity()));
            } else {
                System.out.println("插入ES失??!");
                // Assert.fail();
            }
        } catch (Exception e) {
            e.printStackTrace();
            // Assert.fail();
        }
    }

文章來源地址http://www.zghlxwxcb.cn/news/detail-503649.html

到了這里,關(guān)于java用es客戶端創(chuàng)建索引的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Elasticsearch:在 Java 客戶端應(yīng)用中管理索引 - Elastic Stack 8.x

    管理索引是客戶端應(yīng)用常用的一些動作,比如我們創(chuàng)建,刪除,打開 及關(guān)閉索引等操作。在今天的文章中,我將描述如何在 Java 客戶端應(yīng)用中對索引進(jìn)行管理。 我們需要閱讀之前的文章 “Elasticsearch:在 Java 客戶端中使用 truststore 來創(chuàng)建 HTTPS 連接”。在那篇文章中,我們詳

    2023年04月09日
    瀏覽(22)
  • Java 中使用 ES 高級客戶端庫 RestHighLevelClient 清理百萬級規(guī)模歷史數(shù)據(jù)

    Java 中使用 ES 高級客戶端庫 RestHighLevelClient 清理百萬級規(guī)模歷史數(shù)據(jù)

    ??工作中遇到這樣一個需求場景:由于ES數(shù)據(jù)庫中歷史數(shù)據(jù)過多,占用太多的磁盤空間,需要定期地進(jìn)行清理,在一定程度上可以釋放磁盤空間,減輕磁盤空間壓力。 ??在經(jīng)過調(diào)研之后發(fā)現(xiàn),某服務(wù)項目每周產(chǎn)生的數(shù)據(jù)量已經(jīng)達(dá)到千萬級別,單日將近能產(chǎn)生 兩百萬 的數(shù)據(jù)量

    2024年02月11日
    瀏覽(30)
  • 【Elasticsearch學(xué)習(xí)筆記五】es常用的JAVA API、es整合SpringBoot項目中使用、利用JAVA代碼操作es、RestHighLevelClient客戶端對象

    目錄 一、Maven項目集成Easticsearch 1)客戶端對象 2)索引操作 3)文檔操作 4)高級查詢 二、springboot項目集成Spring Data操作Elasticsearch 1)pom文件 2)yaml 3)數(shù)據(jù)實體類 4)配置類 5)Dao數(shù)據(jù)訪問對象 6)索引操作 7)文檔操作 8)文檔搜索 三、springboot項目集成bboss操作elasticsearch

    2023年04月09日
    瀏覽(37)
  • 【ElasticSearch】基于 Java 客戶端 RestClient 實現(xiàn)對 ElasticSearch 索引庫、文檔的增刪改查操作,以及文檔的批量導(dǎo)入

    【ElasticSearch】基于 Java 客戶端 RestClient 實現(xiàn)對 ElasticSearch 索引庫、文檔的增刪改查操作,以及文檔的批量導(dǎo)入

    ElasticSearch 官方提供了各種不同語言的客戶端,用來操作 ES。這些客戶端的本質(zhì)就是組裝 DSL 語句,通過 HTTP 請求發(fā)送給 ES 服務(wù)器。 官方文檔地址:https://www.elastic.co/guide/en/elasticsearch/client/index.html。 在本文中,我們將著重介紹 ElasticSearch Java 客戶端中的 RestClient,并演示如何

    2024年02月08日
    瀏覽(31)
  • 【已解決】Java 中使用 ES 高級客戶端庫 RestHighLevelClient 清理百萬級規(guī)模歷史數(shù)據(jù)

    【已解決】Java 中使用 ES 高級客戶端庫 RestHighLevelClient 清理百萬級規(guī)模歷史數(shù)據(jù)

    ??工作中遇到這樣一個需求場景:由于ES數(shù)據(jù)庫中歷史數(shù)據(jù)過多,占用太多的磁盤空間,需要定期地進(jìn)行清理,在一定程度上可以釋放磁盤空間,減輕磁盤空間壓力。 ??在經(jīng)過調(diào)研之后發(fā)現(xiàn),某服務(wù)項目每周產(chǎn)生的數(shù)據(jù)量已經(jīng)達(dá)到千萬級別,單日將近能產(chǎn)生 兩百萬 的數(shù)據(jù)量

    2024年02月14日
    瀏覽(21)
  • es相關(guān)的官方客戶端與spring客戶端對比與介紹

    es相關(guān)的官方客戶端與spring客戶端對比與介紹

    es提供的 TransportClient 傳統(tǒng)的客戶端,基于TCP傳輸協(xié)議與Elasticsearch通信。 已經(jīng)被棄用,不推薦使用。 適用于Elasticsearch 5.x及以前的版本 因為Elasticsearch 6.x及以上版本已不再支持TCP Transport協(xié)議,TransportClient無法連接Elasticsearch集群。 RestHighLevelClient 是一個高級的REST客戶端,主要用于與

    2024年02月02日
    瀏覽(25)
  • Scala連接ES客戶端

    大家好,我是楚生輝,在未來的日子里我們一起來學(xué)習(xí)大數(shù)據(jù)相關(guān)的技術(shù),一起努力奮斗,遇見更好的自己! 本文詳細(xì)的介紹了如何使用Scala語言連接上Elasticsearch客戶端,有需要的小伙伴可以自行獲取與學(xué)習(xí)~ 使用方法 寫入ES中,就要規(guī)劃,是寫入到一個索引中,還是分割索

    2024年01月21日
    瀏覽(22)
  • ES客戶端RestHighLevelClient的使用

    ES客戶端RestHighLevelClient的使用

    默認(rèn)情況下,ElasticSearch使用兩個端口來監(jiān)聽外部TCP流量。 9200端口:用于所有通過HTTP協(xié)議進(jìn)行的API調(diào)用。包括搜索、聚合、監(jiān)控、以及其他任何使用HTTP協(xié)議的請求。所有的客戶端庫都會使用該端口與ElasticSearch進(jìn)行交互。 9300端口:是一個自定義的二進(jìn)制協(xié)議,用于集群中各

    2024年02月03日
    瀏覽(21)
  • ES查詢客戶端初始化(RestHighLevelClient)

    另外,如果說把es當(dāng)成一個數(shù)據(jù)庫使用,可以看下開源項目easy-es,操作更方便。文檔地址:快速開始 | Easy-Es

    2024年02月11日
    瀏覽(20)
  • 袁庭新ES系列15節(jié)|Elasticsearch客戶端基礎(chǔ)操作

    袁庭新ES系列15節(jié)|Elasticsearch客戶端基礎(chǔ)操作

    上一章節(jié)我們介紹了搭建Elasticsearch集群相關(guān)的知識。那么又該如何來操作Elasticsearch集群呢?在ES官網(wǎng)中提供了各種語言的客戶端,我們在項目開發(fā)過程中有多種Elasticsearch版本和連接客戶端可以選擇,那么他們有什么區(qū)別?這一章節(jié)袁老師帶領(lǐng)大家來學(xué)習(xí)Elasticsearch客戶端相關(guān)

    2024年04月25日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包