大数据之Elasticsearch教程
Elasticsearch 是一個(gè)建立在全文搜索引擎 Apache Lucene(TM) 基礎(chǔ)上的搜索引擎,可以說(shuō) Lucene 是當(dāng)今最先進(jìn),最高效的全功能開(kāi)源搜索引擎框架。
Elasticsearch是基于Apache Lucene的搜索服務(wù)器。它由Shay Banon開(kāi)發(fā)并于2010年發(fā)布?,F(xiàn)在是由Elasticsearch BV負(fù)責(zé)維護(hù)。其最新版本是:5.2.0。
Elasticsearch是一個(gè)實(shí)時(shí)分布式和開(kāi)源的全文搜索和分析引擎。 它可以從RESTful Web服務(wù)接口訪問(wèn),并使用模式少JSON(JavaScript對(duì)象符號(hào))文檔來(lái)存儲(chǔ)數(shù)據(jù)。它是基于Java編程語(yǔ)言,這使Elasticsearch能夠在不同的平臺(tái)上運(yùn)行。使用戶(hù)能夠以非常快的速度來(lái)搜索非常大的數(shù)據(jù)量。
Elasticsearch的特性
Elasticsearch的一般特性如下 -
- Elasticsearch可擴(kuò)展高達(dá)PB級(jí)的結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)。
- Elasticsearch可以用來(lái)替代MongoDB和RavenDB等做文檔存儲(chǔ)。
- Elasticsearch使用非標(biāo)準(zhǔn)化來(lái)提高搜索性能。
- Elasticsearch是受歡迎的企業(yè)搜索引擎之一,目前被許多大型組織使用,如Wikipedia,The Guardian,StackOverflow,GitHub等。
- Elasticsearch是開(kāi)放源代碼,可在Apache許可證版本2.0下提供。
Elasticsearch的主要概念
Elasticsearch的主要概念如下 -
-
節(jié)點(diǎn)?- 它指的是Elasticsearch的單個(gè)正在運(yùn)行的實(shí)例。單個(gè)物理和虛擬服務(wù)器容納多個(gè)節(jié)點(diǎn),這取決于其物理資源的能力,如RAM,存儲(chǔ)和處理能力。
-
集群?- 它是一個(gè)或多個(gè)節(jié)點(diǎn)的集合。 集群為整個(gè)數(shù)據(jù)提供跨所有節(jié)點(diǎn)的集合索引和搜索功能。
-
索引?- 它是不同類(lèi)型的文檔和文檔屬性的集合。索引還使用分片的概念來(lái)提高性能。 例如,一組文檔包含社交網(wǎng)絡(luò)應(yīng)用的數(shù)據(jù)。
-
類(lèi)型/映射?- 它是共享同一索引中存在的一組公共字段的文檔的集合。 例如,索引包含社交網(wǎng)絡(luò)應(yīng)用的數(shù)據(jù),然后它可以存在用于用戶(hù)簡(jiǎn)檔數(shù)據(jù)的特定類(lèi)型,另一類(lèi)型可用于消息的數(shù)據(jù),以及另一類(lèi)型可用于評(píng)論的數(shù)據(jù)。
-
文檔?- 它是以JSON格式定義的特定方式的字段集合。每個(gè)文檔都屬于一個(gè)類(lèi)型并駐留在索引中。每個(gè)文檔都與唯一標(biāo)識(shí)符(稱(chēng)為UID)相關(guān)聯(lián)。
-
碎片?- 索引被水平細(xì)分為碎片。這意味著每個(gè)碎片包含文檔的所有屬性,但包含的數(shù)量比索引少。水平分隔使碎片成為一個(gè)獨(dú)立的節(jié)點(diǎn),可以存儲(chǔ)在任何節(jié)點(diǎn)中。主碎片是索引的原始水平部分,然后這些主碎片被復(fù)制到副本碎片中。
-
副本?- Elasticsearch允許用戶(hù)創(chuàng)建其索引和分片的副本。 復(fù)制不僅有助于在故障情況下增加數(shù)據(jù)的可用性,而且還通過(guò)在這些副本中執(zhí)行并行搜索操作來(lái)提高搜索的性能。
Elasticsearch的優(yōu)點(diǎn)
- Elasticsearch是基于Java開(kāi)發(fā)的,這使得它在幾乎每個(gè)平臺(tái)上都兼容。
- Elasticsearch是實(shí)時(shí)的,換句話說(shuō),一秒鐘后,添加的文檔可以在這個(gè)引擎中搜索得到。
- Elasticsearch是分布式的,這使得它易于在任何大型組織中擴(kuò)展和集成。
- 通過(guò)使用Elasticsearch中的網(wǎng)關(guān)概念,創(chuàng)建完整備份很容易。
- 與Apache Solr相比,在Elasticsearch中處理多租戶(hù)非常容易。
- Elasticsearch使用JSON對(duì)象作為響應(yīng),這使得可以使用不同的編程語(yǔ)言調(diào)用Elasticsearch服務(wù)器。
- Elasticsearch支持幾乎大部分文檔類(lèi)型,但不支持文本呈現(xiàn)的文檔類(lèi)型。
Elasticsearch的缺點(diǎn)
-
Elasticsearch在處理請(qǐng)求和響應(yīng)數(shù)據(jù)方面沒(méi)有多語(yǔ)言和數(shù)據(jù)格式支持(僅在JSON中可用),與Apache Solr不同,Elasticsearch不可以使用CSV,XML等格式。
-
Elasticsearch也有一些傷腦的問(wèn)題發(fā)生,雖然在極少數(shù)情況下才會(huì)發(fā)生。
Elasticsearch和RDBMS之間的比較
在Elasticsearch中,索引是類(lèi)型的集合,因?yàn)閿?shù)據(jù)庫(kù)是RDBMS(關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng))中表的集合。每個(gè)表都是行的集合,就像每個(gè)映射都是JSON對(duì)象的Elasticsearch集合一樣。
| 索引 | 數(shù)據(jù)庫(kù) |
| 碎片 | 碎片 |
| 映射 | 表 |
| 字段 | 字段 |
| JSON對(duì)象 | 元組 |
?
相關(guān)視頻資料領(lǐng)取掃描下方微信二維碼:
總結(jié)
以上是生活随笔為你收集整理的大数据之Elasticsearch教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: githup用户名密码怎么看_MacBo
- 下一篇: VS2013运行报错error C499