如何安裝與設(shè)置Elasticsearch API

我的Elasticsearch系列文章冶匹,逐漸更新中厚宰,歡迎關(guān)注

0A.關(guān)于Elasticsearch及實(shí)例應(yīng)用

00.Solr與ElasticSearch對(duì)比

01.ElasticSearch能做什么撬陵?

02.Elastic Stack功能介紹

03.如何安裝與設(shè)置Elasticsearch API

04.如果通過elasticsearch的head插件建立索引_CRUD操作

05.Elasticsearch多個(gè)實(shí)例和head plugin使用介紹

06.當(dāng)Elasticsearch進(jìn)行文檔索引時(shí)爽彤,它是怎樣工作的剩胁?

07.Elasticsearch中的映射方式—簡(jiǎn)潔版教程

08.Elasticsearch中的分析和分析器應(yīng)用方式


到目前為止擒权,在本系列文章中袱巨,我一直在撰寫有關(guān)Elasticsearch和Elastic堆棧組件的一般知識(shí)。

如果想找更實(shí)操的操作手冊(cè)碳抄,我推薦你看這篇從小白到大師成長(zhǎng)ElasticSearch入門教程

從本文開始愉老,我們將開始深入研究Elasticsearch API。在本文中剖效,我們將主要側(cè)重于Elasticsearch的安裝嫉入,然后學(xué)習(xí)如何使用Elasticsearch提供的基本CRUD API焰盗。我們還將安裝一個(gè)名為elasticsearch-head的第三方應(yīng)用程序,以查看UI中的更改咒林。

1.安裝Elasticsearch

首先熬拒,讓我們首先在系統(tǒng)中安裝和配置Elasticsearch。在本教程中映九,我將Ubuntu 16.04用作具有8GB RAM的計(jì)算機(jī)上的操作系統(tǒng)梦湘。

1.1 Java安裝

正如我們?cè)谥暗牟┛椭兴吹降哪菢樱珽lasticsearch是建立在名為L(zhǎng)ucene的庫(kù)之上的件甥,而Lucene又是建立在Java之上的捌议。因此,Java是安裝Elasticsearch的先決條件引有。以下是在計(jì)算機(jī)中安裝Java的步驟:

sudo add-apt-repository ppa:webupd8team/java -y

sudo apt-get update

sudo apt-get install oracle-java8-installer

1.2 Elasticsearch安裝

讓我們看看如何在此處將Elasticsearch作為服務(wù)安裝瓣颅。

此處下載最新版本的Elasticsearch

輸入?

sudo dpkg -i elasticsearch-5.6.3.deb

完成上述安裝后,鍵入

sudo service elasticsearch start

以啟動(dòng)服務(wù)譬正。

這將在您的本地環(huán)境中作為服務(wù)安裝并啟動(dòng)elasticsearch宫补。

elasticsearch運(yùn)行的默認(rèn)端口是9200。要檢查它是否正在運(yùn)行曾我,只需在終端中鍵入以下命令:

curl localhost:9200

上面的命令將導(dǎo)致如下所示的響應(yīng):

{

? “name” : “9CCT_A1”,

? “cluster_name” : “elasticsearch”,

? “cluster_uuid” : “QqZcNgcdRDW8sWMaLNf-Jg”,

? “version” : {

? ? “number” : “5.6.3”,

? ? “build_hash” : “1a2f265”,

? ? “build_date” : “2017–10–06T20: 33: 39.012Z”,

? ? “build_snapshot” : false,

? ? “l(fā)ucene_version” : “6.6.1”

? },

? “tagline” : “YouKnow,

? forSearch”

}

1.3配置文件

在Elasticsearch世界中最重要的事情之一就是正確配置它粉怕。我們應(yīng)該熟悉Elasticsearch中兩個(gè)重要的配置文件。這些是 :

1.3b elasticsearch.yml

此配置文件允許使用許多配置選項(xiàng)抒巢,例如更改elasticsearch的端口贫贝,定義集群中的節(jié)點(diǎn),解決cors問題等蛉谜。

該配置文件的位置在文件夾“ etc / elasticsearch”下稚晚。在這里,您可以看到elasticsearch.yml文件型诚。

1.3b jvm.options.yml

yml文件中的配置包含在5.x之前版本的elasticsearch.yml中客燕。此處的配置負(fù)責(zé)Java虛擬機(jī)內(nèi)存管理。此配置文件的位置也位于

etc/elasticsearch

狰贯。我們將在以后的博客中詳細(xì)介紹這一點(diǎn)也搓。

2. Elasticsearch中的索引,類型和文檔

至此暮现,我們已經(jīng)成功在系統(tǒng)中安裝了elasticsearch』够妫現(xiàn)在讓我們熟悉Elasticsearch中的基本數(shù)據(jù)存儲(chǔ)模型。正如我們?cè)谥暗牟┛椭刑岬降哪菢悠艽珽lasticsearch是一個(gè)NoSql數(shù)據(jù)庫(kù)拍顷。

因此,在這里塘幅,代替SQL世界中的數(shù)據(jù)庫(kù)昔案,表尿贫,行是希拉基,最接近的希拉基類比是索引踏揣,類型和文檔庆亡。這意味著,當(dāng)文檔(應(yīng)為JSON格式)保存在Elasticsearch中時(shí)捞稿,其地址看起來像

index name:這類似于SQL world中的數(shù)據(jù)庫(kù)名稱又谋。這是必不可少的信息。Elasticsearch可能包含許多索引娱局,并且要存儲(chǔ)的文檔應(yīng)提供失敗的索引名稱彰亥,這將導(dǎo)致錯(cuò)誤,因?yàn)镋lasticsearch無法確定文檔屬于哪個(gè)索引衰齐。此外任斋,索引名稱不支持大寫和某些特殊字符。

type name:Elasticsearch中的類型類似于SQL世界中數(shù)據(jù)庫(kù)下的表耻涛。因此废酷,索引下可以有多個(gè)表。表格下可以有多個(gè)文檔抹缕。如果我們沒有給文檔提供類型名稱澈蟆,elasticsearch仍將使用默認(rèn)類型名稱進(jìn)行索引。

document ID:文檔的唯一ID卓研》峤椋可以由將文檔放到Elasticsearch的用戶提供,或者如果沒有提供鉴分,Elasticsearch會(huì)自動(dòng)生成一個(gè)唯一值。

注意:“索引名稱+類型名稱+文檔ID”的組合對(duì)于elasticsearch中的每個(gè)文檔都是唯一的

下圖顯示了具有多個(gè)索引的典型elasticsearch數(shù)據(jù)庫(kù)的外觀带膀。

3 CRUD操作-命令行

現(xiàn)在志珍,我們對(duì)Elasticsearch中的數(shù)據(jù)混亂有了一個(gè)基本的想法。在本節(jié)中垛叨,讓我們使用命令行界面在Elasticsearch中執(zhí)行一些基本的CRUD操作伦糯。

3.1創(chuàng)建索引

從上一節(jié)中我們知道,要將文檔存儲(chǔ)在Elasticsearch中嗽元,我們需要指定索引名稱敛纲。因此,重要的是在存儲(chǔ)任何此類文檔之前創(chuàng)建索引剂癌。讓我們

test_index_01

從終端創(chuàng)建一個(gè)名為“?”?的索引淤翔,如下所示:

curl -XPUT localhost:9200/test_name_01

上面的命令將產(chǎn)生如下所示的響應(yīng):

{

“acknowledged”: true,

“shards_acknowledged”: true,

“index”: ”test_index_01"

}

3.2建立文件

現(xiàn)在我們已經(jīng)創(chuàng)建了索引,我們可以將文檔索引到elasticsearch佩谷。

在這種情況下旁壮,我們將為文檔ID等于1的文檔建立索引(存儲(chǔ))监嗜。可以按照以下步驟進(jìn)行操作:

curl -XPUT localhost:9200/test_index_01/test_type_01/1 -d ‘{

“name”: ”ArunMohan”,

“age”: 32

}’

在上述請(qǐng)求中抡谐,以下是我們傳遞給elasticsearch的數(shù)據(jù)的分割信息

indexname: test_index_01

type_name: test_type_01

documentid: 1

document : {

? “name”: “ArunMohan”,

? “age”: 32

}

{


? _index: test_index_01,

? _type: test_type_01,

? _id: 1,

? _version: 1,

? result: created,

? _shards: {

? ? total: 2,

? ? successful: 1,

? ? failed: 0

? },

? created: true

}

在響應(yīng)中裁奇,我們?cè)俅慰梢钥吹剿饕Q(“ _index”),類型名稱(“ _type”)麦撵,文檔ID(“ _ id”)刽肠。還將操作狀態(tài)作為“已創(chuàng)建”值∶馕福“ created”的值是true音五,表示文檔索引成功。

3.3閱讀文件

可以使用帶有索引名稱杜秸,類型名稱和其中指定的文檔ID的GET請(qǐng)求從elasticsearch中檢索文檔放仗。這充當(dāng)該文檔的準(zhǔn)確地址(前提是所傳遞的所有三個(gè)信息都是準(zhǔn)確的),Elasticsearch將為我們獲取該文檔撬碟。讓我們看看如何檢索剛剛索引的文檔诞挨。

curl -XGET localhost:9200/test_index_01/test_type_01/1

上面的請(qǐng)求將返回如下響應(yīng):

{

? _index: test_index_01,

? _type: test_type_01,

? _id: 1,

? _version: 1,

? found: true,

? _source: {

? ? name: ArunMohan,

? ? age: 32

? }

}

在以上響應(yīng)中,我們可以看到文檔位于響應(yīng)的“ _source”對(duì)象下呢蛤。元數(shù)據(jù)包括其他信息和檢索狀態(tài)為“已找到”惶傻。

3.4更新文件

如果需要更新已經(jīng)建立索引的文檔的字段怎么辦?Elasticsearch為我們提供了此操作的更新API其障。在我們的示例中银室,假設(shè)我要使用新值31更新年齡字段。對(duì)此的請(qǐng)求如下所示:

curl -XPOST localhost:9200/test_index_01/test_type_01/1/_update -d '{"doc":{"age":31}}'

您可能已經(jīng)注意到励翼,我在請(qǐng)求中僅給出了必填字段和該字段的新值({“ age”:31})蜈敢。在名為“ doc”的對(duì)象下也是如此。該請(qǐng)求還包含有關(guān)要更新的文檔的所有信息(索引名稱汽抚,類型名稱和文檔ID)抓狭,以便Elasticsearch可以找到該文檔并對(duì)該特定字段進(jìn)行更改(這不是它的確切工作方式,而是目前造烁,我們正在深潛)》窆現(xiàn)在,如果文檔中不存在這樣的字段惭蟋,Elasticsearch將在文檔中創(chuàng)建一個(gè)這樣的字段苗桂。

對(duì)于以上請(qǐng)求,我們將獲得以下響應(yīng):

{

? "_index": "test_index_01",

? "_type": "test_type_01",

? "_id": "1",

? "_version": 2,

? "result": "updated",

? "_shards": {

? ? "total": 2,

? ? "successful": 1,

? ? "failed": 0

? }

}

在以上響應(yīng)的結(jié)果字段中告组,我們可以看到狀態(tài)為“已更新”煤伟,表明更新成功。

3.5刪除文件

刪除類似于前面提到的內(nèi)容。只需提供索引名稱持偏,類型名稱和要?jiǎng)h除的文檔以及請(qǐng)求的文檔ID驼卖,即可將其刪除,如下所示:

curl -XDELETE localhost:9200/test_index_01/test_type_01/1

這將使我們得到如下響應(yīng):

{

? "found": true,

? "_index": "test_index_01",

? "_type": "test_type_01",

? "_id": "1",

? "_version": 3,

? "result": "deleted",

? "_shards": {

? ? "total": 2,

? ? "successful": 1,

? ? "failed": 0

? }

}

結(jié)論

在本文中鸿秆,我們已經(jīng)看到了Elasticsearch的安裝酌畜,然后是其上的基本CRUD操作。在本系列的下一個(gè)博客中卿叽,我們將看到如何在同一系統(tǒng)上使用多個(gè)elasticsearch實(shí)例桥胞。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市考婴,隨后出現(xiàn)的幾起案子贩虾,更是在濱河造成了極大的恐慌,老刑警劉巖沥阱,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缎罢,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡考杉,警方通過查閱死者的電腦和手機(jī)策精,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來崇棠,“玉大人咽袜,你說我怎么就攤上這事≌硐。” “怎么了询刹?”我有些...
    開封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)萎坷。 經(jīng)常有香客問我凹联,道長(zhǎng),這世上最難降的妖魔是什么哆档? 我笑而不...
    開封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任匕垫,我火速辦了婚禮,結(jié)果婚禮上虐呻,老公的妹妹穿的比我還像新娘。我一直安慰自己寞秃,他們只是感情好斟叼,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著春寿,像睡著了一般朗涩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上绑改,一...
    開封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天谢床,我揣著相機(jī)與錄音兄一,去河邊找鬼。 笑死识腿,一個(gè)胖子當(dāng)著我的面吹牛出革,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播渡讼,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼骂束,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了成箫?” 一聲冷哼從身側(cè)響起展箱,我...
    開封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蹬昌,沒想到半個(gè)月后混驰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡皂贩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年栖榨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片先紫。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡治泥,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出遮精,到底是詐尸還是另有隱情居夹,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布本冲,位于F島的核電站准脂,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏檬洞。R本人自食惡果不足惜狸膏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望添怔。 院中可真熱鬧湾戳,春花似錦、人聲如沸广料。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽艾杏。三九已至韧衣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背畅铭。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工氏淑, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人硕噩。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓假残,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親榴徐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子守问,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355