中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

ElasticSearch的基本使用

1.rest基本介紹

創(chuàng)新互聯(lián)主要從事成都網(wǎng)站制作、做網(wǎng)站、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)滿城,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220

REST全稱Representational State Transfer。是一種軟件的架構(gòu)風(fēng)格,而不是標(biāo)準(zhǔn),只是提供了一組設(shè)計(jì)原則和約束條件。它主要用于客戶端和服務(wù)器交互類的軟件?;谶@個(gè)風(fēng)格設(shè)計(jì)的軟件可以更簡(jiǎn)潔,更有層次,更易于實(shí)現(xiàn)緩存等機(jī)制。其實(shí)說白了就是類似HTTP的訪問,和HTTP非常的相似。

rest相關(guān)操作有:

 -GET:獲取對(duì)象的當(dāng)前狀態(tài);

 -PUT:改變對(duì)象的狀態(tài);

 -POST:創(chuàng)建對(duì)象;

 -DELETE:刪除對(duì)象;

 -HEAD:獲取頭信息; 

例:

資源

一組資源的URI,比如:http://zzy.com/res/

單個(gè)資源的URI,比如:http://z.com/res/123

GET列出URI,以及該資源組中每個(gè)資源的詳細(xì)信息
獲取指定資源的詳細(xì)信息,格式可以自選一個(gè)合適的網(wǎng)絡(luò)資源媒體類型(json、xml)
PUT使用給定的一組資源替換當(dāng)前整組資源替換/創(chuàng)建指定資源,并將其追加到相應(yīng)的資源中
POST在本組資源中創(chuàng)建/追加一個(gè)新的資源,該操作往往返回一個(gè)新的URL
把指定的資源當(dāng)做一個(gè)資源組,并在其下創(chuàng)建/追加一個(gè)新的元素,使其隸屬于當(dāng)前資源
DELETE刪除整組資源
刪除指定的元素

ES中內(nèi)置的rest接口:

URL

描述

/index/_search

搜索指定索引下的數(shù)據(jù)

/_aliases

獲取或操作索引的別名

/index/

查看指定索引的詳細(xì)信息

/index/type/

創(chuàng)建或操作類型

/index/_mapping

創(chuàng)建或操作mapping

/index/_setting

創(chuàng)建或操作設(shè)置(number_of_shards)

/index/_open

打開指定被關(guān)閉的索引

/index/_close

關(guān)閉指定索引

/index/_refresh

刷新索引(使新加內(nèi)容對(duì)搜索可見,不保證數(shù)據(jù)被寫入磁盤)

/index/flush

刷新索引(會(huì)觸發(fā)Lucene提交)

2.使用CURL去操作ES

    url是利用URL語法在命令行方式下工作的開源文件傳輸工具,使用curl可以簡(jiǎn)單實(shí)現(xiàn)常見的get/post請(qǐng)求。簡(jiǎn)單的認(rèn)為是可以在命令行下面訪問url的一個(gè)工具。在centos的默認(rèn)庫里面是有curl工具的,如果沒有請(qǐng)yum安裝即可。

 curl的基本操作

    ? -x指定http的請(qǐng)求方法 有HEAD GET POST PUT DELETE

? -d指定要傳輸?shù)臄?shù)據(jù)

? -H指定http請(qǐng)求頭信息

(1)創(chuàng)建索引庫

  語法:curl -XPUT :9200/index_name/">http://<ip>:9200/index_name/

     :curl -XPUT 'http://test:9200/zzy'

ElasticSearch的基本使用

ElasticSearch的基本使用

 (2)創(chuàng)建索引

curl -H "Content-Type: application/json" -XPOST 'http://test:9200/zzy/info/1' -d '
{"name":"hadoop",
"author":"Doug Cutting",
"core":["hdfs","mr","yarn"],
"last_version":3.0
}'

ElasticSearch的基本使用

ElasticSearch的基本使用

     在這里對(duì)初學(xué)者小編需要補(bǔ)充幾點(diǎn):

  • PUT和POST的區(qū)別:

    PUT是冪等方法,POST不是。所以PUT用戶更新,POST用于新增比較合適。創(chuàng)建操作可以使用POST,也可以使用PUT,區(qū)別就在于POST是作用在一個(gè)集合資源(/articles)之上的,而PUT操作是作用在一個(gè)具體資源之上的(/articles/123),比如說很多資源使用數(shù)據(jù)庫自增主鍵作為標(biāo)識(shí)信息,這個(gè)時(shí)候就需要使用PUT了。而創(chuàng)建的資源的標(biāo)識(shí)信息到底是什么,只能由服務(wù)端提供時(shí),這個(gè)時(shí)候就必須使用POST。

  • ES創(chuàng)建索引庫和索引的注意點(diǎn):

    索引庫名稱必須要全部小寫,不能以下劃線開頭,也不能包含逗號(hào)。

    *    如果沒有明確指定索引數(shù)據(jù)的ID,那么es會(huì)自動(dòng)生成一個(gè)隨機(jī)的ID,需要使用POST參數(shù)。

  例:(不指定id)

curl -H "Content-Type: application/json" -XPOST 'http://test:9200/zzy/info/' -d '
{"author" : "Doug Cutting"}'

ElasticSearch的基本使用

    例:(創(chuàng)建全新的數(shù)據(jù))

curl -H "Content-Type: application/json"  -XPOST 'http://test:9200/zzy/info/2?op_type=create' -d '
{"name" : "hbase"}'

ElasticSearch的基本使用

ElasticSearch的基本使用

(3)查詢操作

   例1(查詢所有):

curl -XGET   //注意?pretty表示讓出現(xiàn)的json好看一些

ElasticSearch的基本使用

例2:(檢索文檔中的一部分,顯示特定的字段內(nèi)容

curl -XGET 'http://test:9200/zzy/info/1?_source=name,author&pretty'

ElasticSearch的基本使用

例3:(根據(jù)條件查詢

curl -XGET  'http://test:9200/zzy/info/_search?q=name=hadoop&pretty'

ElasticSearch的基本使用

(4)更新操作

    ES可以使用PUT/GET對(duì)文檔進(jìn)行更新,如果指定ID的文檔已經(jīng)存在,則執(zhí)行更新操作。

    ES在執(zhí)行更新操作的時(shí)候,首先將舊的文檔標(biāo)記為刪除狀態(tài),然后添加新的文檔,舊的文檔不會(huì)立即消失,但是也無法訪問,ES會(huì)繼續(xù)添加更多數(shù)據(jù)的時(shí)候在后臺(tái)清理已經(jīng)標(biāo)記刪除狀態(tài)的文檔。

例:(局部更新)

curl -H "Content-Type: application/json" -XPOST http://test:9200/zzy/info/1/_update -d '{
"doc":{"name" : "apache-hadoop"}
}'
//注意:"doc":{"name" : "apache-hadoop"}可以執(zhí)行更新,也可以執(zhí)行插入。

ElasticSearch的基本使用

(5)刪除操作

例:(普通刪除,根據(jù)id刪除)

curl  -XDELETE http://test:9200/zzy/info/2/

注意:

  • 如果文檔存在,es屬性found:true,successful:1,_version屬性的值+1。

  • 如果文檔不存在,es屬性found為false,但是版本值version依然會(huì)+1,這個(gè)就是內(nèi)部管理的一部分,有點(diǎn)像svn版本號(hào),它保證了我們?cè)诙鄠€(gè)節(jié)點(diǎn)間的不同操作的順序被正確標(biāo)記了。

  • 一個(gè)文檔被刪除之后,不會(huì)立即生效,他只是被標(biāo)記為已刪除。ES將會(huì)在你之后添加更多索引的時(shí)候才會(huì)在后臺(tái)進(jìn)行刪除。

(6)bulk操作

例:

curl -H "Content-Type: application/json" -XPOST 'http://test:9200/bank/accout/_bulk?pretty' 
--data-binary  "@account.json"

ElasticSearch的基本使用

Bulk會(huì)把將要處理的數(shù)據(jù)載入內(nèi)存中,所以一次批處理的數(shù)據(jù)量是有限的,一般建議是1000~5000個(gè)文檔,如果你的文檔很大,可以適當(dāng)減少隊(duì)列,大小建議是5~15MB,默認(rèn)不能超過100M,可以在es的配置文件中修改這個(gè)值:http.max_content_length:100mb

3.ES的版本控制

(1)普通數(shù)據(jù)庫和ES的控制數(shù)據(jù)讀取的策略:

  普通的關(guān)系型數(shù)據(jù)庫使用的時(shí)候是當(dāng)我們讀取一個(gè)數(shù)據(jù)前先鎖定這一行,然后確保只有讀到數(shù)據(jù)的這個(gè)線程可以修改這一行。而ES使用的是(樂觀并發(fā)控制),ES不會(huì)阻止某一個(gè)數(shù)據(jù)的訪問,如果基礎(chǔ)數(shù)據(jù)在我們讀取和寫入的間隔中發(fā)生了變化,更新就會(huì)失敗,這時(shí)候由程序來決定如何處理這個(gè)沖突,可以是重新讀取更新后的數(shù)據(jù),也可能將這個(gè)失敗情況直接反饋給用戶。

(2)ES實(shí)現(xiàn)版本控制:

//首先得到需要修改的文檔,獲取版本號(hào)
curl -XGET http://test:9200/zzy/info/1?pretty

ElasticSearch的基本使用

//然后在執(zhí)行更新操作的時(shí)候把版本傳過去
curl -H "Content-Type: application/json" -XPUT http://test:9200/zzy/info/1?version=2 -d '{
"name":"hadoop","version":4}'  //注意這是個(gè)覆蓋操作

ElasticSearch的基本使用

注意:如果傳遞的版本號(hào)和待更新的文檔的版本號(hào)不一致,則會(huì)更新失敗

(3)ES外部版本:

    如果數(shù)據(jù)庫已經(jīng)存在了版本號(hào),或者是可以代表版本的時(shí)間戳,這時(shí)就可以在ES的查詢url后面添加version_type=external來使用這個(gè)號(hào)。版本號(hào)碼必須要是大于0小于9223372036854775807(Java中l(wèi)ong的最大正值)的整數(shù)。并且es在處理外部版本號(hào)的時(shí)候,它不再檢查_version是否與請(qǐng)求中指定的數(shù)值是否相等,而是檢查當(dāng)前的_version是否比指定的數(shù)值小,如果小,則請(qǐng)求成功。

例:

curl -H "Content-Type: application/json"  -XPUT 'http://test:9200/zzy/info/3?version=10&version_type=external' -d '
{"name": "flink"}'

ElasticSearch的基本使用

文章題目:ElasticSearch的基本使用
文章網(wǎng)址:http://www.rwnh.cn/article26/igiscg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、、虛擬主機(jī)、網(wǎng)頁設(shè)計(jì)公司、定制網(wǎng)站、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
平武县| 富蕴县| 静海县| 通州区| 双峰县| 南安市| 海安县| 邵阳县| 洮南市| 霍林郭勒市| 东乡| 黄陵县| 澳门| 资讯| 大新县| 沈阳市| 吉木乃县| 犍为县| 阿合奇县| 梧州市| 宁陵县| 林州市| 嘉定区| 武夷山市| 汉沽区| 衡山县| 高平市| 谢通门县| 塔城市| 游戏| 建始县| 霞浦县| 五家渠市| 内江市| 南宫市| 济阳县| 延庆县| 北川| 寿宁县| 五大连池市| 开封市|