国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Elasticsearch Java API 6.2(java client)

Gu_Yan / 2664人閱讀

摘要:高級客戶端目前支持更常用的,但還有很多東西需要補充,您可以通過告訴我們您的應(yīng)用程序需要哪些缺失的來幫助我們優(yōu)化優(yōu)先級,通過向這個添加注釋高級客戶端完整性。傳輸客戶端排除非數(shù)據(jù)節(jié)點的原因是為了避免將搜索流量發(fā)送給主節(jié)點。

前言

本節(jié)描述了Elasticsearch提供的Java API,所有的Elasticsearch操作都使用客戶端對象執(zhí)行,所有操作本質(zhì)上都是完全異步的(要么接收監(jiān)聽器,要么未來返回)。

此外,客戶端上的操作可能會大量累積和執(zhí)行。

注意,所有的API都是通過Java API公開的(實際上,Java API是在內(nèi)部使用以執(zhí)行它們的)。

警告
我們計劃在Elasticsearch 7.0中對TransportClient進行棄用,并在8.0中完全刪除它,替而代之,你應(yīng)該使用Java高級REST客戶端,它執(zhí)行HTTP請求而不是序列化的Java請求。遷移指南描述了遷移所需的所有步驟。

Java高級REST客戶端目前支持更常用的API,但還有很多東西需要補充,您可以通過告訴我們您的應(yīng)用程序需要哪些缺失的API來幫助我們優(yōu)化優(yōu)先級,通過向這個issue添加注釋:Java高級REST客戶端完整性。

任何丟失的API都可以通過使用具有JSON請求和響應(yīng)主體的低級Java REST客戶端來實現(xiàn)。

Javadoc

transport clientjavadoc可以在這里找到:https://artifacts.elastic.co/...。

Maven存儲庫

Elasticsearch駐留在Maven Central上。

例如,您可以在pom.xml文件中定義最新的版本:


    org.elasticsearch.client
    transport
    6.2.4
Lucene Snapshot存儲庫

任何主要版本(如beta)的第一個releases版本都可能構(gòu)建在Lucene Snapshot版本之上,在這種情況下,您將無法解析客戶端的Lucene依賴項。

例如,如果您想使用基于Lucene 7.0.0-snapshot-00142c9的6.0.0-beta1版本,您必須定義以下存儲庫。

Maven:


    elastic-lucene-snapshots
    Elastic Lucene Snapshots
    http://s3.amazonaws.com/download.elasticsearch.org/lucenesnapshots/00142c9
    true
    false

Gradle:

maven {
    url "http://s3.amazonaws.com/download.elasticsearch.org/lucenesnapshots/00142c9"
}
Log4j 2記錄器

您還需要包括Log4j 2依賴項:


    org.apache.logging.log4j
    log4j-core
    2.9.1

并在類路徑中提供Log4j 2配置文件,例如,你可以給你的src/main/resources工程目錄添加一個log4j2.properties文件,像這樣:

appender.console.type = Console
appender.console.name = console
appender.console.layout.type = PatternLayout

rootLogger.level = info
rootLogger.appenderRef.console.ref = console
使用另一個記錄器

如果你想使用另一個日志記錄器,而不是Log4j 2,你可以使用SLF4J bridge來實現(xiàn)這一點:


    org.apache.logging.log4j
    log4j-to-slf4j
    2.9.1


    org.slf4j
    slf4j-api
    1.7.24

這個頁面列出了可以使用的實現(xiàn),選擇您最喜歡的日志記錄器,并將其作為依賴項添加。例如,我們將使用slf4j-simple 日志記錄器:


    org.slf4j
    slf4j-simple
    1.7.21
java客戶端

你可以通過多種方式使用Java客戶端:

在現(xiàn)有集群上執(zhí)行標(biāo)準(zhǔn)索引、獲取、刪除和搜索操作

在運行的集群上執(zhí)行管理任務(wù)

獲取一個Elasticsearch客戶端很簡單,獲取客戶端最常見的方法是創(chuàng)建一個連接到集群的TransportClient

重要
客戶端必須具有與集群中的節(jié)點相同的主版本(例如,2.x,或5.x),客戶端可能連接到具有不同次要版本的集群(例如2.3.x),但可能不支持新功能,理想情況下,客戶端應(yīng)該具有與集群相同的版本。
警告
我們計劃在Elasticsearch 7.0中對TransportClient進行棄用,并在8.0中完全刪除它,替而代之,你應(yīng)該使用Java高級REST客戶端,它執(zhí)行HTTP請求而不是序列化的Java請求。遷移指南描述了遷移所需的所有步驟。

Java高級REST客戶端目前支持更常用的API,但還有很多東西需要補充,您可以通過告訴我們您的應(yīng)用程序需要哪些缺失的API來幫助我們優(yōu)化優(yōu)先級,通過向這個issue添加注釋:Java高級REST客戶端完整性。

任何丟失的API都可以通過使用具有JSON請求和響應(yīng)主體的低級Java REST客戶端來實現(xiàn)。

傳輸客戶端

TransportClient使用傳輸模塊遠程連接到Elasticsearch集群,它不加入集群,但只需獲取一個或多個初始傳輸?shù)刂罚⒃诿總€操作上以循環(huán)的方式與它們通信(盡管大多數(shù)操作可能是“兩跳”操作)。

// on startup

TransportClient client = new PreBuiltTransportClient(Settings.EMPTY)
        .addTransportAddress(new TransportAddress(InetAddress.getByName("host1"), 9300))
        .addTransportAddress(new TransportAddress(InetAddress.getByName("host2"), 9300));

// on shutdown

client.close();

注意,如果你使用的是與“elasticsearch”不同的集群名稱,則必須設(shè)置集群名稱:

Settings settings = Settings.builder()
        .put("cluster.name", "myClusterName").build();
TransportClient client = new PreBuiltTransportClient(settings);
//Add transport addresses and do something with the client...

傳輸客戶端具有集群嗅探特性,允許動態(tài)添加新主機并刪除舊主機,當(dāng)啟用嗅探時,傳輸客戶機將連接到其內(nèi)部節(jié)點列表中的節(jié)點,這些節(jié)點是通過調(diào)用addTransportAddress構(gòu)建的。在此之后,客戶端將調(diào)用這些節(jié)點上的內(nèi)部集群狀態(tài)API來發(fā)現(xiàn)可用的數(shù)據(jù)節(jié)點,客戶端的內(nèi)部節(jié)點列表將僅用這些數(shù)據(jù)節(jié)點替換,默認(rèn)情況下,這個列表每5秒刷新一次。注意,嗅探器連接的IP地址是在這些節(jié)點的Elasticsearch配置中聲明為發(fā)布的地址。

請記住,如果該節(jié)點不是一個數(shù)據(jù)節(jié)點,該列表可能不包括它連接到的原始節(jié)點。例如,如果您最初連接到一個主節(jié)點,在嗅探之后,沒有進一步的請求將進入主節(jié)點,而是指向任何數(shù)據(jù)節(jié)點。傳輸客戶端排除非數(shù)據(jù)節(jié)點的原因是為了避免將搜索流量發(fā)送給主節(jié)點。

為了啟用嗅探,請設(shè)置client.transport.snifftrue:

Settings settings = Settings.builder()
        .put("client.transport.sniff", true).build();
TransportClient client = new PreBuiltTransportClient(settings);

其他傳輸客戶端級別設(shè)置包括:

參數(shù)client.transport.ignore_cluster_name

描述:設(shè)置為true以忽略連接節(jié)點的集群名稱驗證。(自從0.19.4)

參數(shù)client.transport.ping_timeout

描述:等待節(jié)點的ping響應(yīng)的時間,默認(rèn)為5s。

參數(shù)client.transport.nodes_sampler_interval

描述:采樣/ping節(jié)點登記和連接的頻率,默認(rèn)5s。

將客戶端連接到僅協(xié)調(diào)的節(jié)點

您可以在本地啟動一個只協(xié)調(diào)的節(jié)點,然后在應(yīng)用程序中創(chuàng)建一個TransportClient,該客戶端連接到這個只協(xié)調(diào)的節(jié)點。

通過這種方式,只需協(xié)調(diào)的節(jié)點將能夠加載您需要的任何插件(例如,關(guān)于discovery插件)。

下一篇:Elasticsearch Java API 6.2(文檔API)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/69699.html

相關(guān)文章

  • Elasticsearch Java API 6.2(文檔API

    摘要:注意當(dāng)一個文檔在快照的時間和索引請求過程之間發(fā)生變化時,會發(fā)生版本沖突。當(dāng)版本匹配時,更新文檔并增加版本號。在正在運行的更新中,使用更改的值使用查找的值。值加快進程立即生效,減慢查詢的值在完成當(dāng)前批處理后生效,以防止?jié)L動超時。 文檔API 本節(jié)描述以下CRUD API: 單文檔的API Index API Get API Delete API Update API 多文檔API ...

    lykops 評論0 收藏0
  • Elasticsearch Java High Level REST Client(入門)

    摘要:入門本節(jié)描述從獲取工件到在應(yīng)用程序中使用它如何開始使用高級別客戶端。保證能夠與運行在相同主版本和大于或等于的次要版本上的任何節(jié)點通信。與具有相同的發(fā)布周期,將版本替換為想要的客戶端版本。 Java High Level REST Client 入門 本節(jié)描述從獲取工件到在應(yīng)用程序中使用它如何開始使用高級別REST客戶端。 兼容性 Java High Level REST Client需...

    honmaple 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<