ElasticSearch優(yōu)化系列六:索引過(guò)程

大家可能會(huì)遇到索引數(shù)據(jù)比較慢的過(guò)程漩氨。其實(shí)明白索引的原理就可以有針對(duì)性的進(jìn)行優(yōu)化西壮。ES索引的過(guò)程到相對(duì)Lucene的索引過(guò)程多了分布式數(shù)據(jù)的擴(kuò)展,而這ES主要是用tranlog進(jìn)行各節(jié)點(diǎn)之間的數(shù)據(jù)平衡叫惊。所以從上我可以通過(guò)索引的settings進(jìn)行第一優(yōu)化:
"index.translog.flush_threshold_ops":"10000" "refresh_interval" : "1s"
這兩個(gè)參數(shù)第一是到translog數(shù)據(jù)達(dá)到多少條進(jìn)行平衡茸时,默認(rèn)為5000,而這個(gè)過(guò)程相對(duì)而言是比較浪費(fèi)時(shí)間和資源的赋访。所以我們可以將這個(gè)值調(diào)大一些還是設(shè)為-1關(guān)閉可都,進(jìn)而手動(dòng)進(jìn)行translog平衡。第二參數(shù)是刷新頻率蚓耽,默認(rèn)為1s是指索引在生命周期內(nèi)定時(shí)刷新渠牲,一但有數(shù)據(jù)進(jìn)來(lái)能refresh像lucene里面commit,我們知道當(dāng)數(shù)據(jù)addDoucment后,還不能檢索到要commit之后才能行數(shù)據(jù)的檢索步悠,所以可以將其關(guān)閉签杈,在最初索引完后手動(dòng)refresh之,然后將索引setting里面的index.refresh_interval參數(shù)按需求進(jìn)行修改,從而可以提高索引過(guò)程效率答姥。

另外的知道ES索引過(guò)程中如果有副本存在铣除,數(shù)據(jù)也會(huì)馬上同步到副本中去。我個(gè)人建議在索引過(guò)程中將副本數(shù)設(shè)為0鹦付,待索引完成后將副本數(shù)按需量改回來(lái)尚粘,這樣也可以提高索引效率。
“number_of_replicas”: 0

其實(shí)檢索速度快度與索引質(zhì)量有很大的關(guān)系敲长。而索引質(zhì)量的好壞主要與以下幾方面有關(guān):

分片數(shù)

分片數(shù)是與檢索速度非常相關(guān)的的指標(biāo)郎嫁,如果分片數(shù)過(guò)少或過(guò)多都會(huì)導(dǎo)致檢索比較慢。分片數(shù)過(guò)多會(huì)導(dǎo)致檢索時(shí)打開(kāi)比較多的文件別外也會(huì)導(dǎo)致多臺(tái)服務(wù)器之間通訊祈噪。而分片數(shù)過(guò)少會(huì)導(dǎo)致單個(gè)分片索引過(guò)大泽铛,所以檢索速度慢〖穑基于索引分片數(shù)=數(shù)據(jù)總量/單分片數(shù)的計(jì)算公式盔腔,在確定分片數(shù)之前需要進(jìn)行單服務(wù)單索引單分片的測(cè)試,目前我們測(cè)試的結(jié)果單個(gè)分片的內(nèi)容為10G月褥。

分片(Shard):一個(gè)索引會(huì)分成多個(gè)分片存儲(chǔ)弛随,分片數(shù)量在索引建立后不可更改,推薦【分片數(shù)*副本數(shù)=集群數(shù)量】

確定分片(shard)的數(shù)量和副本(replica)的數(shù)量

ElasticSearch在創(chuàng)建索引數(shù)據(jù)時(shí)吓坚,最好指定相關(guān)的shards數(shù)量和replicas, 否則會(huì)使用服務(wù)器中的默認(rèn)配置參數(shù)shards=5灯荧,replicas=1礁击。
因?yàn)檫@兩個(gè)屬性的設(shè)置直接影響集群中索引和搜索操作的執(zhí)行。假設(shè)你有足夠的機(jī)器來(lái)持有碎片和副本逗载,那么可以按如下規(guī)則設(shè)置這兩個(gè)值:
1) 擁有更多的碎片可以提升索引執(zhí)行能力哆窿,并允許通過(guò)機(jī)器分發(fā)一個(gè)大型的索引;
2) 擁有更多的副本能夠提升搜索執(zhí)行能力以及集群能力厉斟。
對(duì)于一個(gè)索引來(lái)說(shuō)挚躯,number_of_shards只能設(shè)置一次,而number_of_replicas可以使用索引更新設(shè)置API在任何時(shí)候被增加或者減少擦秽。
這兩個(gè)配置參數(shù)在配置文件的配置如下:
index.number_of_shards: 5 number_of_replicas: 1

Elastic官方文檔建議:一個(gè)Node中一個(gè)索引最好不要多于三個(gè)shards.配置total_shards_per_node參數(shù)码荔,限制每個(gè)index每個(gè)節(jié)點(diǎn)最多分配多少個(gè)發(fā)片.

http://www.open-open.com/doc/view/f240d61f8f7745098b4459c2483feb40

http://wenku.baidu.com/link?url=bwD9mpebmQ28mqPj6Z0P1_A9bgFKnhIss8UrRA_Nsv7oTFuUEa9JgUdr9ynKc8OjWvd0pVLsp3tYZTFaNcxVt30EyFBCvkNflFGjMWcqsRq

副本數(shù)

副本數(shù)與索引的穩(wěn)定性有比較大的關(guān)系,如果Node在非正常掛了感挥,經(jīng)常會(huì)導(dǎo)致分片丟失缩搅,為了保證這些數(shù)據(jù)的完整性,可以通過(guò)副本來(lái)解決這個(gè)問(wèn)題触幼。建議在建完索引后在執(zhí)行Optimize后硼瓣,馬上將副本數(shù)調(diào)整過(guò)來(lái)。

分詞

分詞對(duì)于索引的影響可大可小置谦,看自己把握堂鲤。大家或許認(rèn)為詞庫(kù)越多亿傅,分詞效果越好,索引質(zhì)量越好瘟栖,其實(shí)不然葵擎。分詞有很多算法,大部分基于詞表進(jìn)行分詞慢宗。也就是說(shuō)詞表的大小決定索引大小坪蚁。所以分詞與索引膨漲率有直接關(guān)系。詞表不應(yīng)很多镜沽,而對(duì)文檔相關(guān)特征性較強(qiáng)的即可敏晤。比如論文的數(shù)據(jù)進(jìn)行建索引,分詞的詞表與論文的特征越相似缅茉,詞表數(shù)量越小嘴脾,在保證查全查準(zhǔn)的情況下,索引的大小可以減少很多蔬墩。索引大小減少了译打,那么檢索速度也就提高了。

索引段

索引段即lucene中的segments概念拇颅,我們知道ES索引過(guò)程中會(huì)refresh和tranlog也就是說(shuō)我們?cè)谒饕^(guò)程中segments number不只一個(gè)奏司。而segments number與檢索是有直接聯(lián)系的,segments number越多檢索越慢樟插,而將segments numbers 有可能的情況下保證為1韵洋,這將可以提高將近一半的檢索速度。

https://www.elastic.co/guide/en/elasticsearch/guide/current/hardware.html

未完待續(xù)

你可能還會(huì)喜歡

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末搪缨,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子鸵熟,更是在濱河造成了極大的恐慌副编,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件流强,死亡現(xiàn)場(chǎng)離奇詭異痹届,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)打月,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)短纵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人僵控,你說(shuō)我怎么就攤上這事香到。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵悠就,是天一觀的道長(zhǎng)千绪。 經(jīng)常有香客問(wèn)我,道長(zhǎng)梗脾,這世上最難降的妖魔是什么荸型? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮炸茧,結(jié)果婚禮上瑞妇,老公的妹妹穿的比我還像新娘。我一直安慰自己梭冠,他們只是感情好辕狰,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著控漠,像睡著了一般蔓倍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上盐捷,一...
    開(kāi)封第一講書(shū)人閱讀 51,590評(píng)論 1 305
  • 那天偶翅,我揣著相機(jī)與錄音,去河邊找鬼碉渡。 笑死聚谁,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的滞诺。 我是一名探鬼主播形导,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼铭段!你這毒婦竟也來(lái)了骤宣?” 一聲冷哼從身側(cè)響起秦爆,我...
    開(kāi)封第一講書(shū)人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤序愚,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后等限,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體爸吮,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年望门,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了形娇。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡筹误,死狀恐怖桐早,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤哄酝,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布友存,位于F島的核電站,受9級(jí)特大地震影響陶衅,放射性物質(zhì)發(fā)生泄漏屡立。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一搀军、第九天 我趴在偏房一處隱蔽的房頂上張望膨俐。 院中可真熱鬧,春花似錦罩句、人聲如沸焚刺。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)檩坚。三九已至,卻和暖如春诅福,著一層夾襖步出監(jiān)牢的瞬間匾委,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工氓润, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留赂乐,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓咖气,卻偏偏與公主長(zhǎng)得像挨措,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子崩溪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容