国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
分布式搜索elasticsearch java API 之(一)

這是關(guān)于elasticsearch Java api的第一篇教程,陸續(xù)會(huì)把es的一些心得寫出來。

可以通過兩種方式來連接到elasticsearch(簡(jiǎn)稱es)集群,第一種是通過在你的程序中創(chuàng)建一個(gè)嵌入es節(jié)點(diǎn)(Node),使之成為es集群的一部分,然后通過這個(gè)節(jié)點(diǎn)來與es集群通信。第二種方式是用TransportClient這個(gè)接口和es集群通信。

Node方式

創(chuàng)建嵌入節(jié)點(diǎn)的方式如下:

  1. import static org.elasticsearch.node.NodeBuilder.*;   
  2. //啟動(dòng)節(jié)點(diǎn)  
  3. Node node = nodeBuilder().node();  
  4. Client client = node.client();   
  5. //關(guān)閉節(jié)點(diǎn) 
  6. node.close(); 
  1. import static org.elasticsearch.node.NodeBuilder.*;    
  2. //啟動(dòng)節(jié)點(diǎn)   
  3. Node node = nodeBuilder().node();   
  4. Client client = node.client();    
  5. //關(guān)閉節(jié)點(diǎn)  
  6. node.close();  


當(dāng)你啟動(dòng)一個(gè)節(jié)點(diǎn),它會(huì)自動(dòng)加入同網(wǎng)段的es集群,一個(gè)前提就是es的集群名(cluster.name)這個(gè)參數(shù)要設(shè)置一致。

默認(rèn)的話啟動(dòng)一個(gè)節(jié)點(diǎn),es集群會(huì)自動(dòng)給它分配一些索引的分片,如果你想這個(gè)節(jié)點(diǎn)僅僅作為一個(gè)客戶端而不去保存數(shù)據(jù),你就可以設(shè)置把node.data設(shè)置成false或 node.client設(shè)置成true。下面是例子:

  1. Node node = nodeBuilder().clusterName(clusterName).client(true).node();  
  1. Node node = nodeBuilder().clusterName(clusterName).client(true).node();   


還有一種情況是你并不想把節(jié)點(diǎn)加入集群,只想用它進(jìn)行單元測(cè)試時(shí),就要啟動(dòng)一個(gè)“本地”的es,這里“本地”指的是在jvm的級(jí)別下運(yùn)行,即兩個(gè)不同的es節(jié)點(diǎn)運(yùn)行在同一個(gè)JVM中時(shí)會(huì)組成一個(gè)集群。它需要把節(jié)點(diǎn)的local參數(shù)設(shè)置成true,下面是例子:

  1. Node node = nodeBuilder().local(true).node();  
  1. Node node = nodeBuilder().local(true).node();   

TransportClient方式
通過TransportClient這個(gè)接口,我們可以不啟動(dòng)節(jié)點(diǎn)就可以和es集群進(jìn)行通信,它需要指定es集群中其中一臺(tái)或多臺(tái)機(jī)的ip地址和端口,例子如下:

  1. Client client = new TransportClient()  
  2.         .addTransportAddress(new InetSocketTransportAddress("host1",9300))  
  3.         .addTransportAddress(new InetSocketTransportAddress("host2",9300));  
  4.   
  5. client.close(); 
  1. Client client = new TransportClient()   
  2.         .addTransportAddress(new InetSocketTransportAddress("host1", 9300))   
  3.         .addTransportAddress(new InetSocketTransportAddress("host2", 9300));   
  4.    
  5. client.close();  

    
如果你需要更改集群名(默認(rèn)是elasticsearch),需要如下設(shè)置:

  1. Settings settings = ImmutableSettings.settingsBuilder()  
  2.                 .put("cluster.name", "myClusterName").build();  
  3. Client client = new TransportClient(settings); 
  1. Settings settings = ImmutableSettings.settingsBuilder()   
  2.                 .put("cluster.name", "myClusterName").build();   
  3. Client client = new TransportClient(settings);  

你可以設(shè)置client.transport.sniff為true來使客戶端去嗅探整個(gè)集群的狀態(tài),把集群中其它機(jī)器的ip地址加到客戶端中,這樣做的好處是一般你不用手動(dòng)設(shè)置集群里所有集群的ip到連接客戶端,它會(huì)自動(dòng)幫你添加,并且自動(dòng)發(fā)現(xiàn)新加入集群的機(jī)器。代碼實(shí)例如下:

  1. Settings settings = ImmutableSettings.settingsBuilder()  
  2.                 .put("client.transport.sniff",true).build();  
  3. TransportClient client = new TransportClient(settings); 
  1. Settings settings = ImmutableSettings.settingsBuilder()   
  2.                 .put("client.transport.sniff", true).build();   
  3. TransportClient client = new TransportClient(settings);  


參考資料:http://www.searchtech.pro/articles/2013/02/18/1361194853254.html

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
時(shí)下最火搜索引擎:ElasticSearch詳解與優(yōu)化設(shè)計(jì)
干貨 |《深入理解Elasticsearch》讀書筆記
Java連接ElasticSearch詳解
Elasticsearch部分節(jié)點(diǎn)不能發(fā)現(xiàn)集群(腦裂)問題處理
elasticsearch - 單機(jī)部署安裝
elasticsearch
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服