給大家講下elasticsearch-基礎(chǔ)概念

基本概念:
索引:含有相同屬性的文檔集合(相當(dāng)于數(shù)據(jù)庫(kù)的database)
類型:索引可以定義一個(gè)或多個(gè)類型,文檔必須屬于一個(gè)類型(相當(dāng)于數(shù)據(jù)庫(kù)的table)
文檔:文檔是可以被索引的基本數(shù)據(jù)單位(相當(dāng)于數(shù)據(jù)庫(kù)的一行記錄)
分片:每個(gè)索引都有多個(gè)分片,每個(gè)分片是一個(gè)Lucene索引
備份:拷貝一份分片就完成了分片的備份
創(chuàng)建索引是會(huì)默認(rèn)創(chuàng)建5個(gè)分片一個(gè)備份
solr:
優(yōu)點(diǎn)
1、Solr有一個(gè)更大、更成熟的用戶、開發(fā)和貢獻(xiàn)者社區(qū)。
2、支持添加多種格式的索引,如:HTML、PDF、微軟 Office 系列軟件格式以及 JSON、XML、CSV 等純文本格式。
3、Solr比較成熟、穩(wěn)定。
4、不考慮建索引的同時(shí)進(jìn)行搜索,速度更快。
缺點(diǎn)
建立索引時(shí),搜索效率下降,實(shí)時(shí)索引搜索效率不高。
Elasticsearch
優(yōu)點(diǎn)
1、Elasticsearch是分布式的。不需要其他組件,分發(fā)是實(shí)時(shí)的,被叫做”Push replication”。
2、Elasticsearch 完全支持 Apache Lucene 的接近實(shí)時(shí)的搜索。
3、處理多租戶(multitenancy)不需要特殊配置,而Solr則需要更多的高級(jí)設(shè)置。
4、Elasticsearch 采用 Gateway 的概念,使得完備份更加簡(jiǎn)單。
5、各節(jié)點(diǎn)組成對(duì)等的網(wǎng)絡(luò)結(jié)構(gòu),某些節(jié)點(diǎn)出現(xiàn)故障時(shí)會(huì)自動(dòng)分配其他節(jié)點(diǎn)代替其進(jìn)行工作。
缺點(diǎn)
1、還不夠自動(dòng),不適合當(dāng)前新的Index Warmup API (參考:http://zhaoyanblog.com/archives/764.html)
總結(jié):
1、當(dāng)單純的對(duì)已有數(shù)據(jù)進(jìn)行搜索時(shí),Solr更快。
2、當(dāng)實(shí)時(shí)建立索引時(shí), Solr會(huì)產(chǎn)生io阻塞,查詢性能較差, Elasticsearch具有明顯的優(yōu)勢(shì)。
3、隨著數(shù)據(jù)量的增加,Solr的搜索效率會(huì)變得更低,而Elasticsearch卻沒有明顯的變化。
4、Solr的架構(gòu)不適合實(shí)時(shí)搜索的應(yīng)用。
5、Solr 支持更多格式的數(shù)據(jù),而 Elasticsearch 僅支持json文件格式
6、Solr 在傳統(tǒng)的搜索應(yīng)用中表現(xiàn)好于 Elasticsearch,但在處理實(shí)時(shí)搜索應(yīng)用時(shí)效率明顯低于 Elasticsearch
7、Solr 是傳統(tǒng)搜索應(yīng)用的有力解決方案,但 Elasticsearch 更適用于新興的實(shí)時(shí)搜索應(yīng)用