? ??Elasticsearch是一個(gè)分布式搜索服務(wù)。底層是開源庫(kù)?Lucene叨叙,但是锭弊,你沒法直接用 Lucene,必須自己寫代碼去調(diào)用它的接口擂错。Elastic 是 Lucene 的封裝味滞,提供了 REST API 的操作接口,開箱即用钮呀。
? ??采用多shard的方式保證數(shù)據(jù)安全剑鞍,并且提供自動(dòng)resharding的功能,維基百科行楞、Stack Overflow攒暇、Github 都采用它大型的站點(diǎn)也采用Elasticsearch作為其搜索服務(wù)
????Elasticsearch與Solr比較:https://www.cnblogs.com/chowmin/articles/4629220.html
http://blog.csdn.net/yangwenbo214/article/details/77802331
1.Elasticsearch是如何實(shí)現(xiàn)Master選舉的?
Elasticsearch的選主是ZenDiscovery模塊負(fù)責(zé)的子房,主要包含Ping(節(jié)點(diǎn)之間通過這個(gè)RPC來發(fā)現(xiàn)彼此)和Unicast(單播模塊包含一個(gè)主機(jī)列表以控制哪些節(jié)點(diǎn)需要ping通)這兩部分形用;
2.Elasticsearch是如何避免腦裂現(xiàn)象的就轧?
??集群(Cluster): ES可以作為一個(gè)獨(dú)立的單個(gè)搜索服務(wù)器。不過田度,為了處理大型數(shù)據(jù)集妒御,實(shí)現(xiàn)容錯(cuò)和高可用性,ES可以運(yùn)行在許多互相合作的服務(wù)器上镇饺。這些服務(wù)器的集合稱為集群乎莉。
??節(jié)點(diǎn)(node):形成集群的每個(gè)服務(wù)器稱為節(jié)點(diǎn)。
?? 索引(Indices):含有相同屬性的文檔集合(英文字母小寫且不含中劃線)(--> 人)
???分類(type):索引可以定義一個(gè)或多個(gè)類型奸笤,文檔必須屬于一個(gè)類型? (-->黑人黃人白人)
???文檔(document):文檔是可以被索引的基本數(shù)據(jù)單位- (-> 具體的哪個(gè)人)
???分片(shard):每個(gè)索引都有多個(gè)分片惋啃,每個(gè)分片是一個(gè)Lucene索引,好處:數(shù)據(jù)索引比較大监右,可以分擔(dān)壓力边灭,提高效率
???備份(replicas):拷貝一份分片就完成了分片的備份,好處健盒,當(dāng)某個(gè)節(jié)點(diǎn)某個(gè)分片損壞或丟失時(shí)可以從副本中恢復(fù)绒瘦。
? ? 每個(gè)索引默認(rèn)5個(gè)分片一個(gè)備份,數(shù)量可以修改扣癣,分片的數(shù)量只能在創(chuàng)建索引時(shí)指定惰帽,而不能在后期修改,備份可以(分片和備份不會(huì)再同一節(jié)點(diǎn))
http://blog.csdn.net/yangwenbo214/article/details/77802331
1.Elasticsearch是如何實(shí)現(xiàn)Master選舉的父虑?
? ??Elasticsearch的選主是ZenDiscovery模塊負(fù)責(zé)的该酗,主要包含Ping(節(jié)點(diǎn)之間通過這個(gè)RPC來發(fā)現(xiàn)彼此)和Unicast(單播模塊包含一個(gè)主機(jī)列表以控制哪些節(jié)點(diǎn)需要ping通)這兩部分
2.Elasticsearch是如何避免腦裂現(xiàn)象的?http://blog.csdn.net/yangwenbo214/article/details/77802331
一下載安裝?Elasticsearch
????1.1我們從地址http://www.elasticsearch.org/download下載ELasticSearch工具包频轿。解壓到指定目錄
????1.2進(jìn)入bin 目錄垂涯,雙擊執(zhí)行elasticsearch.bat
? ?? ? (如果報(bào)找不到環(huán)境參考https://www.cnblogs.com/qixuejia/p/5414948.html)
二.安裝Head插件
1.下載node.js? ?->??https://nodejs.org/en/
? ?速度不行可下載 ->http://nodejs.cn/download/
2.安裝grunt?
? ? 2.1grunt是一個(gè)很方便的構(gòu)建工具,可以進(jìn)行打包壓縮航邢、測(cè)試耕赘、執(zhí)行等等的工作,5.0里的head插件就是通過grunt啟動(dòng)的膳殷。
? ? ? ?npm其實(shí)是Node.js的包管理工具(package manager) , npm已經(jīng)在Node.js安裝的時(shí)候順帶裝好了
? ?2.2注意:路徑切到D:\nodejs下??
? ? ?安裝npm install -g grunt-cli
? ? ?檢查grunt -version
3.安裝head插件
3.1? git clone git://github.com/mobz/elasticsearch-head.git??
? ? ? ?或? https://github.com/mobz/elasticsearch-head
3.2切到head源碼目錄中操骡,執(zhí)行npm install 下載的包:
? ? ? npm? install
4.用head啟動(dòng)
? ? 4.1 啟動(dòng)es下elasticsearch.bat
? ? 4.2 切換head目錄下 啟動(dòng)?
? ? ? ?grunt server
綠色:es服務(wù)正常運(yùn)行很健康?
黃色:集群雖然可以正常使用,但不是很健康?
紅色:集群雖然可以正常搜素?cái)?shù)據(jù)赚窃,但是會(huì)出現(xiàn)丟失數(shù)據(jù)的問題
三.分布式安裝
編輯ES文件下config ->elasticsearch.yml文件
(注意:1.編輯時(shí)候冒號(hào)后面要跟空格册招,2.創(chuàng)建子節(jié)點(diǎn)的一定要從解壓后的文件,不要直接復(fù)制主節(jié)點(diǎn)的es文件)
3.1主節(jié)點(diǎn):
3.2子節(jié)點(diǎn):
3.3顯示效果
四.新建索引
索引:結(jié)構(gòu)索引和非結(jié)構(gòu)索引
4.1 建立索引
4.2非結(jié)構(gòu)索引
4.3 結(jié)構(gòu)索引
4.4 POSTMAN創(chuàng)建結(jié)構(gòu)索引
{
? ? "settings":{
? ? ? "number_of_shards":3,
? ? ? "number_of_replicas":1
? ? },
? ? "mappings":{
? ? ? ? "man":{
? ? ? ? ? "properties":{
? ? ? ? ? ? ? ? "name":{
? ? ? ? ? ? ? ? ? "type":"text"
? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? "country":{
? ? ? ? ? ? ? ? ? "type":"keyword"
? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? "age":{
? ? ? ? ? ? ? ? ? ? "type":"integer"
? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? "date":{
? ? ? ? ? ? ? ? ? ? "type":"date",
? ? ? ? ? ? ? ? ? ? "format":"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
? ? ? ? ? ? ? ? }
? ? ? ? ? }
? ? ? ? }
? ? }
}
4.5索引查看
5.查詢
5.1高級(jí)查詢包括
? ? ? 子條件查詢 特定字段查詢所指特定值(包括Query context 和 Filter context)
????? 復(fù)合條件查詢 以一定的邏輯組合子條件查詢
5.2 Query context
? ? ????在查詢過程中勒极,除了判斷文檔是否滿足查詢條件外是掰,ES還會(huì)計(jì)算一個(gè)"_score“來標(biāo)識(shí)匹配的程度,來判斷目標(biāo)文檔和查詢條件匹配的”有多好“
其中常用查詢包括:全文本查詢:針對(duì)文本類型數(shù)據(jù)/字段級(jí)別查詢辱匿,針對(duì)結(jié)構(gòu)化數(shù)據(jù)键痛,如數(shù)字炫彩,日期等
文本查詢包括
match:模糊查詢
match_phrase:短語(yǔ)查詢
multi_match : 多個(gè)字段模糊查詢
query_string : 語(yǔ)法查詢
字段級(jí)別查詢包括
term 具體項(xiàng),也支持區(qū)間查詢
Filter context
在查詢過程中絮短,只判斷該文檔是否滿足條件江兢,只有YES/NO,會(huì)有緩存丁频,速度快
5.3復(fù)合條件查詢
固定分?jǐn)?shù)查詢
布爾查詢
more