初學(xué)ElasticSearch系列之三 ElasticSearch API

與 Elasticsearch 通信

如何與 Elasticsearch 通信要取決于你是否使用 JAVA。

Java API

  1. 如果你使用的是 JAVA,Elasticsearch 內(nèi)置了兩個(gè)客戶(hù)端:
  • 節(jié)點(diǎn)客戶(hù)端
    節(jié)點(diǎn)客戶(hù)端以一個(gè) 無(wú)數(shù)據(jù)節(jié)點(diǎn) 的身份加入了一個(gè)集群。
    換句話說(shuō),它自身是沒(méi)有任何數(shù)據(jù)的,但是他知道什么數(shù)據(jù)在集群中的哪一個(gè)節(jié)點(diǎn)上,然后就可以請(qǐng)求轉(zhuǎn)發(fā)到正確的節(jié)點(diǎn)上并進(jìn)行連接。
  • 傳輸客戶(hù)端
    更加輕量的傳輸客戶(hù)端可以被用來(lái)向遠(yuǎn)程集群發(fā)送請(qǐng)求。
    他并不加入集群本身,而是把請(qǐng)求轉(zhuǎn)發(fā)到集群中的節(jié)點(diǎn)。
  1. 這兩個(gè)客戶(hù)端都使用 Elasticsearch 的 傳輸協(xié)議,通過(guò)9300端口與 java 客戶(hù)端進(jìn)行通信。
  2. 集群中的各個(gè)節(jié)點(diǎn)也是通過(guò)9300端口進(jìn)行通信。
  3. 如果這個(gè)端口被禁止了,那么你的節(jié)點(diǎn)們將不能組成一個(gè)集群。

TIPs

Java 的客戶(hù)端的版本號(hào)必須要與 Elasticsearch 節(jié)點(diǎn)所用的版本號(hào)一樣,不然他們之間可能無(wú)法識(shí)別。

通過(guò) HTTP 向 RESTful API 傳送 json

其他的語(yǔ)言可以通過(guò)9200端口與 Elasticsearch 的 RESTful API 進(jìn)行通信。
事實(shí)上,如你所見(jiàn),你甚至可以使用行命令 curl 來(lái)與 Elasticsearch 通信。

  1. 向 Elasticsearch 發(fā)出的請(qǐng)求和其他所有的 HTTP 請(qǐng)求的組成部分是一致的。
    例如:
    計(jì)算集群中文件的數(shù)量,我們就可以使用:
    (1) (2) (3)(4)
    curl -i -XGET 'http://localhost:9200/_count?pretty' -d '
    { (5)
    "query": {
    "match_all": {}
    }
    }
    '
    (1)相應(yīng)的 HTTP 請(qǐng)求方法 或者 變量 : GET, POST, PUT, HEAD 或者 DELETE。
    (2)集群中任意一個(gè)節(jié)點(diǎn)的訪問(wèn)協(xié)議、主機(jī)名以及端口。
    (3)請(qǐng)求的路徑。
    (4)任意一個(gè)查詢(xún)后再加上 ?pretty 就可以生成 更加美觀 的JSON反饋,以增強(qiáng)可讀性。
    (5)一個(gè) JSON 編碼的請(qǐng)求主體(如果需要的話)。

Elasticsearch 將會(huì)返回一個(gè) HTTP 狀態(tài)碼類(lèi)似于 '200 OK',以及一個(gè) JSON 格式的主體(除了單純的 'HEAD' 請(qǐng)求),上面的請(qǐng)求會(huì)得到下方的 JSON 主體:

{
  "count" : 0,
  "_shards" : {
    "total" : 0,
    "successful" : 0,
    "skipped" : 0,
    "failed" : 0
  }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,568評(píng)論 19 139
  • 簡(jiǎn)介 Elasticsearch是一個(gè)高可擴(kuò)展的開(kāi)源全文搜索和分析引擎,它允許存儲(chǔ)、搜索和分析大量的數(shù)據(jù),并且這個(gè)...
    零度沸騰_yjz閱讀 5,577評(píng)論 0 8
  • 這部片是通過(guò)改編迪士尼的《泰山》而改編拍成電影的。但是我沒(méi)有看過(guò)原著,直接看的是這部片—《泰山歸來(lái)·險(xiǎn)戰(zhàn)叢林》,所...
    沐曉沐閱讀 1,037評(píng)論 0 0
  • 夢(mèng),虛幻縹緲,任我如何伸手觸摸,始終觸不到抓不著。睜開(kāi)眼,一切回到現(xiàn)實(shí)回到夢(mèng)開(kāi)始的原點(diǎn)。我那僅有的小小種子,是否曾...
    mystical神秘的閱讀 369評(píng)論 0 2
  • I feel anxious every month for no reason.until talking wi...
    Dougigi閱讀 491評(píng)論 2 2

友情鏈接更多精彩內(nèi)容