asticsearch是基于Apache 2.0開源的實時、分布式、分析搜索引擎,相比Lucene,Elasticsearch的上手比較容易,這篇文章主要紀錄Elasticsearch的基本概念和基本API。
官方對Elasticsearch的定義:
Elasticsearch is a distributed, RESTful search and analytics engine capable of solving a growing number of use cases. As the heart of the Elastic Stack, it centrally stores your data so you can discover the expected and uncover the unexpected.
你可能已經(jīng)在Elasticsearch的文檔中看過如下詞匯:
NRT: 近實時(Near Realtime),當一個文檔保存至index,短暫的延遲后就可以被搜索。
Node: 指單個實例,存儲文檔并參與所在集群的索引和搜索,一臺機器可以運行多個實例,每個實例啟動時都有自己的唯一標識。
Cluster: 指多個實例組成的集群,集群中的節(jié)點有相同的cluster.name(默認為"elasticsearch"),用戶可以通過集群對多個節(jié)點的所有數(shù)據(jù)進行索引和搜索。
Index: 索引在Elasticsearch中有兩種含義。作為名詞,索引可以指文檔的集合,作為動詞,可以說"對某個文檔進行索引",也就是把文檔存儲到索引。一個index的名稱即為其標識,名稱必須為小寫。如果和RDBMS相比的話,index的概念可能和database比較相似。
Type: 用于對同一個index中的數(shù)據(jù)進行邏輯分類。例如,有個存儲了sns數(shù)據(jù)的index,這個index中可能存在多個類型,例如用戶資料數(shù)據(jù)、評論數(shù)據(jù)、聊天數(shù)據(jù)...
Document: 文檔以JSON格式存儲,文檔中包含多個字段,每個文檔都有自己的類型并存儲于index中。
Shards: index可以切分成多個shard,每個shard分布到不同的節(jié)點上。通過shard可以在存儲還是搜索上緩解單個節(jié)點的壓力。
Replicas: 對shard進行復制,通過副本不僅保證了可用性,也提高了搜索效率。
一個index可以分為多個shard,默認配置下,每個index有5個primary shards和1個副本(也就是5個replica shards),也就是說這個index有10個shards。
為了進一步說明,這里簡單說明一下安裝過程。
首先需要確認機器上是否已經(jīng)安裝了Java,這里建議使用java 8:
java -versionecho $JAVA_HOME
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26