成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Elasticsearch學(xué)習(xí)上手(二)

stdying / 2593人閱讀

摘要:序列化被大多數(shù)編程語(yǔ)言所支持,并且已經(jīng)成為領(lǐng)域的標(biāo)準(zhǔn)格式。通過索引對(duì)文檔的進(jìn)行創(chuàng)建查詢修改和刪除等操作。請(qǐng)求的結(jié)構(gòu)調(diào)整為不再使用請(qǐng)求使用這個(gè)存儲(chǔ)這個(gè)文檔,而是使用請(qǐng)求存儲(chǔ)文檔在這個(gè)命名空間下。

在安裝elasticsearch之后,我們就要開始進(jìn)行操作實(shí)踐,那么在實(shí)踐之前,我們首先了解下elasticsearch的幾個(gè)概念

面向文檔

相對(duì)關(guān)系型數(shù)據(jù)庫(kù),是采用行和列的形式進(jìn)行存儲(chǔ)數(shù)據(jù),elasticsearch是面向文檔的,意味著它存儲(chǔ)整個(gè)對(duì)象或文檔。Elasticsearch 不僅存儲(chǔ)文檔,而且 索引 每個(gè)文檔的內(nèi)容使之可以被檢索。在 Elasticsearch 中,你對(duì)文檔進(jìn)行索引、檢索、排序和過濾--而不是對(duì)行列數(shù)據(jù)。這是一種完全不同的思考數(shù)據(jù)的方式,也是 Elasticsearch 能支持復(fù)雜全文檢索的原因。
Elasticsearch 使用 JavaScript Object Notation 或者?JSON?作為文檔的序列化格式。JSON 序列化被大多數(shù)編程語(yǔ)言所支持,并且已經(jīng)成為 NoSQL 領(lǐng)域的標(biāo)準(zhǔn)格式。 它簡(jiǎn)單、簡(jiǎn)潔、易于閱讀。

集群(cluster)

一個(gè)集群就是由一個(gè)或多個(gè)節(jié)點(diǎn)組織在一起,它們共同持有你整個(gè)的數(shù)據(jù),并一起提供索引和搜索功能。一個(gè)集群由一個(gè)唯一的名字標(biāo)識(shí),這個(gè)名字默認(rèn)就是“elasticsearch”。這個(gè)名字是重要的,因?yàn)橐粋€(gè)節(jié)點(diǎn)只能通過指定某個(gè)集群的名字,來加入這個(gè)集群。在產(chǎn)品環(huán)境中顯式地設(shè)定這個(gè)名字是一個(gè)好習(xí)慣,但是使用默認(rèn)值來進(jìn)行測(cè)試/開發(fā)也是不錯(cuò)的。

節(jié)點(diǎn)(node)

一個(gè)節(jié)點(diǎn)是你集群中的一個(gè)服務(wù)器,作為集群的一部分,它存儲(chǔ)你的數(shù)據(jù),參與集群的索引和搜索功能。和集群類似,一個(gè)節(jié)點(diǎn)也是由一個(gè)名字來標(biāo)識(shí)的,默認(rèn)情況下,這個(gè)名字是一個(gè)隨機(jī)的漫威漫畫角色的名字,這個(gè)名字會(huì)在啟動(dòng)的時(shí)候賦予節(jié)點(diǎn)。這個(gè)名字對(duì)于管理工作來說挺重要的,因?yàn)樵谶@個(gè)管理過程中,你會(huì)去確定網(wǎng)絡(luò)中的哪些服務(wù)器對(duì)應(yīng)于Elasticsearch集群中的哪些節(jié)點(diǎn)。
一個(gè)節(jié)點(diǎn)可以通過配置集群名稱的方式來加入一個(gè)指定的集群。默認(rèn)情況下,每個(gè)節(jié)點(diǎn)都會(huì)被安排加入到一個(gè)叫做“elasticsearch”的集群中,這意味著,如果你在你的網(wǎng)絡(luò)中啟動(dòng)了若干個(gè)節(jié)點(diǎn),并假定它們能夠相互發(fā)現(xiàn)彼此,它們將會(huì)自動(dòng)地形成并加入到一個(gè)叫做“elasticsearch”的集群中。

ps:當(dāng)然你可以通過修改配置文件中node.name自行定義節(jié)點(diǎn)名稱

分片和復(fù)制(shards & replicas)

一個(gè)索引可以存儲(chǔ)超出單個(gè)結(jié)點(diǎn)硬件限制的大量數(shù)據(jù)。比如,一個(gè)具有10億文檔的索引占據(jù)1TB的磁盤空間,而任一節(jié)點(diǎn)都沒有這樣大的磁盤空間;或者單個(gè)節(jié)點(diǎn)處理搜索請(qǐng)求,響應(yīng)太慢。

為了解決這個(gè)問題,Elasticsearch提供了將索引劃分成多份的能力,這些份就叫做分片。當(dāng)你創(chuàng)建一個(gè)索引的時(shí)候,你可以指定你想要的分片的數(shù)量。每個(gè)分片本身也是一個(gè)功能完善并且獨(dú)立的“索引”,這個(gè)“索引”可以被放置到集群中的任何節(jié)點(diǎn)上。
分片之所以重要,主要有兩方面的原因:

允許你水平分割/擴(kuò)展你的內(nèi)容容量

允許你在分片(潛在地,位于多個(gè)節(jié)點(diǎn)上)之上進(jìn)行分布式的、并行的操作,進(jìn)而提高性能/吞吐量

至于一個(gè)分片怎樣分布,它的文檔怎樣聚合回搜索請(qǐng)求,是完全由Elasticsearch管理的,對(duì)于作為用戶的你來說,這些都是透明的。

在一個(gè)網(wǎng)絡(luò)/云的環(huán)境里,失敗隨時(shí)都可能發(fā)生,在某個(gè)分片/節(jié)點(diǎn)不知怎么的就處于離線狀態(tài),或者由于任何原因消失了,這種情況下,有一個(gè)故障轉(zhuǎn)移機(jī)制是非常有用并且是強(qiáng)烈推薦的。為此目的,Elasticsearch允許你創(chuàng)建分片的一份或多份拷貝,這些拷貝叫做復(fù)制分片,或者直接叫復(fù)制。

復(fù)制之所以重要,有兩個(gè)主要原因:

在分片/節(jié)點(diǎn)失敗的情況下,提供了高可用性。因?yàn)檫@個(gè)原因,注意到復(fù)制分片從不與原/主要(original/primary)分片置于同一節(jié)點(diǎn)上是非常重要的。

擴(kuò)展你的搜索量/吞吐量,因?yàn)樗阉骺梢栽谒械膹?fù)制上并行運(yùn)行

總之,每個(gè)索引可以被分成多個(gè)分片。一個(gè)索引也可以被復(fù)制0次(意思是沒有復(fù)制)或多次。一旦復(fù)制了,每個(gè)索引就有了主分片(作為復(fù)制源的原來的分片)和復(fù)制分片(主分片的拷貝)之別。分片和復(fù)制的數(shù)量可以在索引創(chuàng)建的時(shí)候指定。在索引創(chuàng)建之后,你可以在任何時(shí)候動(dòng)態(tài)地改變復(fù)制的數(shù)量,但是你事后不能改變分片的數(shù)量。

默認(rèn)情況下,Elasticsearch中的每個(gè)索引被分片5個(gè)主分片和1個(gè)復(fù)制,這意味著,如果你的集群中至少有兩個(gè)節(jié)點(diǎn),你的索引將會(huì)有5個(gè)主分片和另外5個(gè)復(fù)制分片(1個(gè)完全拷貝),這樣的話每個(gè)索引總共就有10個(gè)分片。

索引(_index)

一個(gè) 索引應(yīng)該是因共同的特性被分組到一起的文檔集合。一般來說,對(duì)比關(guān)系型數(shù)據(jù)庫(kù),相當(dāng)于SQL的數(shù)據(jù)庫(kù)或者schema。通過索引對(duì)文檔的進(jìn)行創(chuàng)建、查詢、修改和刪除等操作。需要注意的是,索引的名稱必須全為小寫字符。

類型(_type)

類型是索引內(nèi)部的邏輯分區(qū)(category/partition),然而其意義完全取決于用戶需求。一般來說,類型就是為那些擁有相同的域的文檔做的預(yù)定義。對(duì)比關(guān)系型數(shù)據(jù)庫(kù),對(duì)應(yīng)的是“表”。

_id

ID?是一個(gè)字符串,當(dāng)它和?_index以及?_type組合就可以唯一確定Elasticsearch 中的一個(gè)文檔。 當(dāng)你創(chuàng)建一個(gè)新的文檔,要么提供自己的?_id,要么讓 Elasticsearch 幫你生成。

如果你的文檔有一個(gè)自然的標(biāo)識(shí)符 (例如,一個(gè)?user_account
?字段或其他標(biāo)識(shí)文檔的值),你應(yīng)該使用如下方式的?index?API 并提供你自己?_id

PUT /{index}/{type}/{id}
{ "field": "value", ...}

如果你的數(shù)據(jù)沒有自然的 ID, Elasticsearch 可以幫我們自動(dòng)生成 ID 。請(qǐng)求的結(jié)構(gòu)調(diào)整為: 不再使用PUT請(qǐng)求(“使用這個(gè) URL 存儲(chǔ)這個(gè)文檔”), 而是使用?POST請(qǐng)求(“存儲(chǔ)文檔在這個(gè) URL 命名空間下”)。
現(xiàn)在該 URL 只需包含?_index?和?_type

POST /{index}/{type}
{ "field": "value", ...}

?
參考:
https://www.elastic.co/guide/...
http://blog.csdn.net/cnweike/...
http://www.cnblogs.com/ajianb...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/67357.html

相關(guān)文章

  • Elasticsearch學(xué)習(xí)上手(一)

    摘要:是一個(gè)基于的開源搜索引擎。的目的是通過簡(jiǎn)單的來隱藏的復(fù)雜性,從而讓全文搜索變得簡(jiǎn)單。它提供了許多合理的缺省值,并對(duì)初學(xué)者隱藏了復(fù)雜的搜索引擎理論。它開箱即用安裝即可使用,只需很少的學(xué)習(xí)既可在生產(chǎn)環(huán)境中使用。 Elasticsearch是一個(gè)基于Apache Lucene(TM)的開源搜索引擎。一開始公司里一位同事是直接采用Luncene進(jìn)行開發(fā)的,整體開發(fā)下來,代碼量大,比較復(fù)雜,我就...

    PumpkinDylan 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<