日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Low Level REST Client (5.x)

本文基于Java Low Level REST Client 5.x版本,為您介紹Elasticsearch Java API的用法。

注意事項

  • 本文提供的Low Level REST Client示例主要適用于阿里云Elasticsearch 5.5.3版本,不適用于6.3.2版本。如果您的Elasticsearch實例是6.3.2版本,可參見Elasticsearch Java REST Client 6.3.2官方文檔進(jìn)行配置。

  • Java REST Client版本需要與Elasticsearch實例版本保持一致。

準(zhǔn)備工作

  • 安裝Java,要求JDK版本為1.8及以上。

    安裝方法請參見安裝JDK

  • 創(chuàng)建阿里云Elasticsearch實例,版本為5.5.3。

    創(chuàng)建方法請參見創(chuàng)建阿里云Elasticsearch實例。

  • 開啟阿里云Elasticsearch實例的自動創(chuàng)建索引功能。

    具體操作步驟請參見配置YML參數(shù)。

    如果未開啟會提示如下報錯。報錯

  • 配置阿里云Elasticsearch實例的白名單,確保網(wǎng)絡(luò)互通。

    • 如果運行Java代碼的服務(wù)器在公網(wǎng)環(huán)境下,可通過阿里云Elasticsearch實例的公網(wǎng)地址進(jìn)行連通。連通前,需要開啟阿里云Elasticsearch實例的公網(wǎng)地址,并修改公網(wǎng)地址訪問白名單,將服務(wù)器的公網(wǎng)IP地址加入白名單中。具體操作步驟請參見配置實例公網(wǎng)或私網(wǎng)訪問白名單。

      重要
      • 如果您的客戶端處在家庭網(wǎng)絡(luò)或公司局域網(wǎng)中,您需要將局域網(wǎng)的公網(wǎng)出口IP地址添加到白名單中,而非客戶端機器的內(nèi)網(wǎng)地址。建議您通過瀏覽器訪問cip.cc獲取您當(dāng)前使用的公網(wǎng)IP地址。

      • 您也可以將白名單配置為0.0.0.0/0,允許所有IPv4地址訪問阿里云Elasticsearch實例。此配置會導(dǎo)致實例完全暴露在公網(wǎng)中,增加安全風(fēng)險,配置前請確認(rèn)您是否可以接受這個風(fēng)險。

      • 如果未配置白名單或白名單配置錯誤,系統(tǒng)會提示連接超時報錯(Timeout connecting)。

      • 如果您需要通過客戶端訪問Kibana節(jié)點,還需要配置Kibana的訪問白名單,詳細(xì)信息請參見配置Kibana公網(wǎng)或私網(wǎng)訪問白名單。

    • 如果運行Java代碼的服務(wù)器與阿里云Elasticsearch實例在同一專有網(wǎng)絡(luò)VPC(Virtual Private Cloud)中,可通過阿里云Elasticsearch實例的私網(wǎng)地址進(jìn)行連通。連通前,需要確保VPC私網(wǎng)訪問白名單(默認(rèn)為0.0.0.0/0)中已添加了服務(wù)器的內(nèi)網(wǎng)IP地址。

  • 創(chuàng)建Java Maven工程,并將下文的pom依賴添加到Java工程的pom.xml文件中。

pom依賴

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>rest</artifactId>
    <version>5.5.3</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.7.1</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.7.1</version>
</dependency>
重要

Log4j可能存在遠(yuǎn)程代碼執(zhí)行漏洞,詳細(xì)信息請參見漏洞公告 | Apache Log4j2遠(yuǎn)程代碼執(zhí)行漏洞。

示例

單擊下載完整示例代碼。

通過Java REST Client訪問阿里云Elasticsearch的9200端口進(jìn)行測試,示例代碼如下。

import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.entity.ContentType;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
import org.apache.http.nio.entity.NStringEntity;
import org.apache.http.util.EntityUtils;
import org.elasticsearch.client.Response;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import java.io.IOException;
import java.util.Collections;
public class RestClientTest55 {
    public  static void main(String[]args){
        final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        credentialsProvider.setCredentials(AuthScope.ANY,
                new UsernamePasswordCredentials("USER NAME", "PASSWORD"));
        // 單擊所創(chuàng)建的Elasticsearch實例ID,在基本信息頁面獲取公網(wǎng)地址,即為HOST。
        RestClient restClient = RestClient.builder(new HttpHost("HOST", 9200))
                .setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
                    @Override
                    public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
                        return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
                    }
                }).build();
        try {
            //field_01、field_02為字段名,value_01、value_02為對應(yīng)的值。
            HttpEntity entity = new NStringEntity("{\n\"field_01\" : \"value_01\"\n,\n\"field_02\" : \"value_02\"\n}", ContentType.APPLICATION_JSON);
            //index_name為索引名稱;type_name為類型名稱;doc_id為文檔的id。
            Response indexResponse = restClient.performRequest(
                    "PUT",
                    "/index_name/type_name/doc_id",
                    Collections.<String, String>emptyMap(),
                    entity);
            //index_name為索引名稱;type_name為類型名稱;doc_id為文檔的id。與以上創(chuàng)建索引的名稱和id相同。
            Response response = restClient.performRequest("GET", "/index_name/type_name/doc_id",
                    Collections.singletonMap("pretty", "true"));
            System.out.println(EntityUtils.toString(response.getEntity()));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

參數(shù)

說明

USER NAME

替換為訪問阿里云Elasticsearch實例的用戶名。

PASSWORD

替換為訪問阿里云Elasticsearch實例的密碼。

HOST

替換為阿里云Elasticsearch實例的私網(wǎng)或外網(wǎng)地址??稍趯嵗幕拘畔㈨撁娅@取,獲取方法請參見查看實例的基本信息。