elk入門概念詳解

開(kāi)始第一步

成都創(chuàng)新互聯(lián)2013年至今,先為羅平等服務(wù)建站,羅平等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為羅平企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

我們現(xiàn)在開(kāi)始進(jìn)行一個(gè)簡(jiǎn)單教程,它涵蓋了一些基本的概念介紹,比如索引(indexing)、搜索(search)以及聚合(aggregations)。通過(guò)這個(gè)教程,我們可以讓你對(duì)Elasticsearch能做的事以及其易用程度有一個(gè)大致的感覺(jué)。

我們接下來(lái)將陸續(xù)介紹一些術(shù)語(yǔ)和基本的概念,但就算你沒(méi)有馬上完全理解也沒(méi)有關(guān)系。我們將在本書(shū)的各個(gè)章節(jié)中更加深入的探討這些內(nèi)容。

所以,坐下來(lái),開(kāi)始以旋風(fēng)般的速度來(lái)感受Elasticsearch的能力吧!

讓我們建立一個(gè)員工目錄

假設(shè)我們剛好在Megacorp工作,這時(shí)人力資源部門出于某種目的需要讓我們創(chuàng)建一個(gè)員工目錄,這個(gè)目錄用于促進(jìn)人文關(guān)懷和用于實(shí)時(shí)協(xié)同工作,所以它有以下不同的需求:

數(shù)據(jù)能夠包含多個(gè)值的標(biāo)簽、數(shù)字和純文本。

檢索任何員工的所有信息。

支持結(jié)構(gòu)化搜索,例如查找30歲以上的員工。

支持簡(jiǎn)單的全文搜索和更復(fù)雜的短語(yǔ)(phrase)搜索

高亮搜索結(jié)果中的關(guān)鍵字

能夠利用圖表管理分析這些數(shù)據(jù)

索引員工文檔

我們首先要做的是存儲(chǔ)員工數(shù)據(jù),每個(gè)文檔代表一個(gè)員工。在Elasticsearch中存儲(chǔ)數(shù)據(jù)的行為就叫做索引(indexing),不過(guò)在索引之前,我們需要明確數(shù)據(jù)應(yīng)該存儲(chǔ)在哪里。

在Elasticsearch中,文檔歸屬于一種類型(type),而這些類型存在于索引(index)中,我們可以畫(huà)一些簡(jiǎn)單的對(duì)比圖來(lái)類比傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù):

Relational DB -> Databases -> Tables -> Rows -> Columns

Elasticsearch -> Indices   -> Types  -> Documents -> Fields

Elasticsearch集群可以包含多個(gè)索引(indices)(數(shù)據(jù)庫(kù)),每一個(gè)索引可以包含多個(gè)類型(types)(表),每一個(gè)類型包含多個(gè)文檔(documents)(行),然后每個(gè)文檔包含多個(gè)字段(Fields)(列)。

「索引」含義的區(qū)分

你可能已經(jīng)注意到索引(index)這個(gè)詞在Elasticsearch中有著不同的含義,所以有必要在此做一下區(qū)分:

索引(名詞) 如上文所述,一個(gè)索引(index)就像是傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù),它是相關(guān)文檔存儲(chǔ)的地方,index的復(fù)數(shù)是indices 或indexes。

索引(動(dòng)詞)「索引一個(gè)文檔」表示把一個(gè)文檔存儲(chǔ)到索引(名詞)里,以便它可以被檢索或者查詢。這很像SQL中的INSERT關(guān)鍵字,差別是,如果文檔已經(jīng)存在,新的文檔將覆蓋舊的文檔。

倒排索引傳統(tǒng)數(shù)據(jù)庫(kù)為特定列增加一個(gè)索引,例如B-Tree索引來(lái)加速檢索。Elasticsearch和Lucene使用一種叫做倒排索引(inverted index)的數(shù)據(jù)結(jié)構(gòu)來(lái)達(dá)到相同目的。

默認(rèn)情況下,文檔中的所有字段都會(huì)被索引(擁有一個(gè)倒排索引),只有這樣他們才是可被搜索的。

我們將會(huì)在倒排索引章節(jié)中更詳細(xì)的討論。

所以為了創(chuàng)建員工目錄,我們將進(jìn)行如下操作:

為每個(gè)員工的文檔(document)建立索引,每個(gè)文檔包含了相應(yīng)員工的所有信息。

每個(gè)文檔的類型為employee。

employee類型歸屬于索引megacorp。

megacorp索引存儲(chǔ)在Elasticsearch集群中。

實(shí)際上這些都是很容易的(盡管看起來(lái)有許多步驟)。我們能通過(guò)一個(gè)命令執(zhí)行完成的操作:

PUT /megacorp/employee/1

{

    "first_name" : "John",

    "last_name" :  "Smith",

    "age" :        25,

    "about" :      "I love to go rock climbing",

    "interests": [ "sports", "music" ]

}

我們看到path:/megacorp/employee/1包含三部分信息:

名字說(shuō)明

megacorp索引名

employee類型名

1這個(gè)員工的ID

請(qǐng)求實(shí)體(JSON文檔),包含了這個(gè)員工的所有信息。他的名字叫“John Smith”,25歲,喜歡攀巖。

很簡(jiǎn)單吧!它不需要你做額外的管理操作,比如創(chuàng)建索引或者定義每個(gè)字段的數(shù)據(jù)類型。我們能夠直接索引文檔,Elasticsearch已經(jīng)內(nèi)置所有的缺省設(shè)置,所有管理操作都是透明的。

接下來(lái),讓我們?cè)谀夸浿屑尤敫鄦T工信息:

PUT /megacorp/employee/2

{

    "first_name" :  "Jane",

    "last_name" :   "Smith",

    "age" :         32,

    "about" :       "I like to collect rock albums",

    "interests":  [ "music" ]

}

PUT /megacorp/employee/3

{

    "first_name" :  "Douglas",

    "last_name" :   "Fir",

    "age" :         35,

    "about":        "I like to build cabinets",

    "interests":  [ "forestry" ]

}

結(jié)果:

[root@master elasticsearch]#

curl -i -XPUT 127.0.0.1:9200/megacorp/employee/1 -d '                     
{
    "first_name" : "John",
    "last_name" :  "Smith",
    "age" :        25,
    "about" :      "I love to go rock climbing",
    "interests": [ "sports", "music" ]
}
'

結(jié)果: 集群數(shù)據(jù)目錄多一個(gè)了index megacorp名名稱的(indices目錄是 index名稱的復(fù)數(shù))

[root@master elasticsearch]#

ls -l /tmp/elasticsearch/data/elasticsearch-cluster/nodes/0/indices/megacorp/
total 24
drwxr-xr-x 5 elasticsearch elasticsearch 4096 May 15 19:32 0
drwxr-xr-x 5 elasticsearch elasticsearch 4096 May 15 19:31 1
drwxr-xr-x 5 elasticsearch elasticsearch 4096 May 15 19:32 2
drwxr-xr-x 5 elasticsearch elasticsearch 4096 May 15 19:31 3
drwxr-xr-x 5 elasticsearch elasticsearch 4096 May 15 19:33 4
drwxr-xr-x 2 elasticsearch elasticsearch 4096 May 15 19:33 _state

名稱欄目:elk入門概念詳解
文章位置:http://muchs.cn/article2/pgdoic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、網(wǎng)站導(dǎo)航、虛擬主機(jī)、響應(yīng)式網(wǎng)站、全網(wǎng)營(yíng)銷推廣搜索引擎優(yōu)化

廣告

聲明:本網(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化