ElasticSearch基礎(chǔ)普及篇

本文將分為三大部分來講es相關(guān)的基礎(chǔ)知識點

一泌参、ElasticSearch 基礎(chǔ)概念和組成部分

? ? ? ? ?1)ElasticSearch概念一句話總結(jié):

? ? ? ? ES是一個基于Lucene并采用Restful API 標(biāo)準(zhǔn)的高可擴(kuò)展性和高可用性的實時數(shù)據(jù)分析的全文檢索工具

? ? ? ? ?2)ElasticSearch涉及到的一些概念:

? ? ? ? NRT(準(zhǔn)實時): Elasticsearch是一個接近實時的搜索平臺乖阵。這意味著,從索引一個文檔直到這 ? ? 個文檔能夠被搜索到有一個輕微的延遲(通常是1秒)

? ? ? ? ? Node(節(jié)點):單個的裝有ElasticSearch服務(wù)并且提供故障轉(zhuǎn)移和擴(kuò)展的服務(wù)器

? ? ? ? ? Cluster(集群):一個集群就是由一個或多個Node組織在一起共同工作讨永,共同分享整個數(shù)據(jù)具有負(fù)載均衡功能的集群,集群名稱是唯一標(biāo)識,因為一個節(jié)點只能通過指定某個集群的名字遇革,來加入這個集群

? ? ? ? ? ? Document(文檔):一個文檔是一個可以被索引的基礎(chǔ)信息單元

? ? ? ? ? ? Index(索引):索引就是一個擁有幾分相似特征的文檔的集合

? ? ? ? ? ? Type(類型):一個索引中卿闹,你可以定義一種或者多種類型

? ? ? ? ? ? Field(列):Field是ElasticSearch中最小單位揭糕,相當(dāng)于數(shù)據(jù)的某一列

? ? ? ? ? ? Shards(分片):一個索引可以存儲超出單個結(jié)點硬件限制的大量數(shù)據(jù)。比如锻霎,一個具有10億文檔的索引占據(jù)1TB的磁盤空間著角,而任一節(jié)點都沒有這樣大的磁盤空間;或者單個節(jié)點處理搜索請求旋恼,響應(yīng)太慢吏口。因此ElasticSearch將索引分成若干份,每個部分就是一個shard 冰更,當(dāng)你創(chuàng)建一個索引的時候产徊,你可以指定你想要的分片的數(shù)量。每個分片本身也是一個功能完善并且獨立的“索引”蜀细,這個“索引”可以被放置到集群中的任何節(jié)點上舟铜。 分片好處就是可以對數(shù)據(jù)進(jìn)行水平分割,擴(kuò)展內(nèi)容容量审葬,提高查詢性能和吞吐量

? ? ? ? ? ? Replicas(復(fù)制):Replicas是索引的一份或者多份拷貝 提供高可用

? ? ? ? ? ?分片和復(fù)制的數(shù)量可以在索引創(chuàng)建的時候指定深滚。在索引創(chuàng)建之后,你可以在任何時候動態(tài)地改變復(fù)制數(shù)量涣觉,但是不能改變分片的數(shù)量痴荐。

? ? ? ? ?3)Es跟關(guān)系型數(shù)據(jù)庫對照如下圖:

? ? ? ? ?4) ElasticSearch架構(gòu)圖如下:


二、ElastSearch 簡單安裝

? ? ? ? ?1)ElasticSearch安裝:

? ? ? ? ? ? ? ? ES最佳實踐安裝方法就是下載壓縮包直接解壓?官網(wǎng)地址:https://www.elastic.co/

? ? ? ? ? ? ? ? 1)安裝ES首先需要安裝jdk官册,必須是1.7以上的版本生兆。

? ? ? ? ? ? ? ? [root@localhost ~]# yum -y install java-1.8.0-openjdk*?

? ? ? ? ? ? ? ? 2)下載壓縮包到下載目錄下

? ? ? ? ? ? ? ? ?[root@localhost ~] # cd? /opt/elasticsearch && wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.3.5/elasticsearch-2.3.5.tar.gz

? ? ? ? ? ? ? ? [root@localhost elasticsearch]# tar zxvf elasticsearch-2.3.5.tar.gz

? ? ? ? ? ? ? ? 3)創(chuàng)建ES安裝目錄 將解壓后的東西移動到安裝目錄

? ? ? ? ? ? ? ? ? [root@localhost elasticsearch]# cd ?elasticsearch-2.3.5

? ? ? ? ? ? ? ? ? [root@localhost elasticsearch-2.3.5]#? mkdir /usr/local/elasticsearch

? ? ? ? ? ? ? ? ? [root@localhost elasticsearch-2.3.5]#? mv * /usr/local/elasticsearch

? ? ? ? ? ? ? ? ? [root@localhost elasticsearch-2.3.5]#? cd /usr/local/elasticsearch/bin/

? ? ? ? ? ? ? ? ? [root@localhost bin]# ?./elasticsearch

? ? ? ? ? ? ? ? ? Exceptioninthread"main"java.lang.RuntimeException:don'trunelasticsearchasroot.

? ? ? ? ? ? ? ? ? atorg.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:93)

? ? ? ? ? ? ? ? ? atorg.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:144)

? ? ? ? ? ? ? ? ? atorg.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:270)

? ? ? ? ? ? ? ? ?atorg.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)

? ? ? ? ? ? ? ? ?Refertothelogforcompleteerrordetails.

? ? ? ? ? ? ? ?報錯,提示不能用root用戶運行膝宁。

? ? ? ? ? ? ? ? vim編輯elasticsearch鸦难,添加ES_JAVA_OPTS="-Des.insecure.allow.root=true"

? ? ? ? ? ? ? ?我添加在了注釋說明下面,一定在變量ES_JAVA_OPTS使用前添加员淫。

? ? ? ? ? ? ? ?再次運行./elasticsearch

? ? ? ? ? ? ? ??[root@localhost bin]# ./elasticsearch? ? ? ?

?[2016-08-2016:11:52,021][WARN][bootstrap]runningasROOTuser.thisisabadidea!

?[2016-08-2016:11:52,034][WARN] ? ? ? ? ? ? ? ? ? ? ?[bootstrap]unabletoinstallsyscallfilter:seccompunavailable:requireskernel3.5+withCONFIG_SECCOMPandCONFIG_SECCOMP_FILTERcompiledin

?[2016-08-2016:11:52,431][INFO][node] ? ? ? ? ? ? [JohnnyStorm]version[2.3.5],pid[28122],build[90f439f/2016-07-27T10:36:52Z]

?[2016-08-2016:11:52,431][INFO][node][JohnnyStorm]initializing...

?[2016-08-2016:11:53,390][INFO][plugins][JohnnyStorm]modules[lang-groovy,reindex,lang-expression],plugins[],sites[]

?[2016-08-2016:11:53,474][INFO][env] ? ? ? ? ? ? ? ?[JohnnyStorm]using[1]datapaths,mounts/(/dev/mapper/VolGroup-lv_root),netusable_space[22.3gb],nettotal_space[30.5gb],spins?[possibly],types[ext4]

?[2016-08-2016:11:53,475][INFO][env][JohnnyStorm]heapsize[1007.3mb],compressedordinaryobjectpointers[true]

[2016-08-2016:11:53,475][WARN][env][JohnnyStorm]maxfiledescriptors[65535]forelasticsearchprocesslikelytoolow,considerincreasingtoatleast[65536]

[2016-08-2016:11:55,811][INFO][node][JohnnyStorm]initialized

[2016-08-2016:11:55,811][INFO][node][JohnnyStorm]starting...

[2016-08-2016:11:56,031][INFO][transport][JohnnyStorm]publish_address{127.0.0.1:9300},bound_addresses{127.0.0.1:9300},{[::1]:9300}

[2016-08-2016:11:56,038][INFO][discovery][JohnnyStorm]elasticsearch/VDX23-BvQX-2saLUKUSLww

[2016-08-2016:11:59,138][INFO][cluster.service][JohnnyStorm]new_master{JohnnyStorm}{VDX23-BvQX-2saLUKUSLww}{127.0.0.1}{127.0.0.1:9300},reason:zen-disco-join(elected_as_master,[0]joinsreceived)

[2016-08-2016:11:59,166][INFO][http][JohnnyStorm]publish_address{127.0.0.1:9200},bound_addresses{127.0.0.1:9200},{[::1]:9200}

[2016-08-2016:11:59,166][INFO][node][JohnnyStorm]started

[2016-08-2016:11:59,201][INFO][gateway][JohnnyStorm]recovered[0]indicesintocluster_state

出現(xiàn)上面信息表示已經(jīng)運行成功合蔽,到此正式完成安裝。

外網(wǎng)訪問

上面的提示中有一句:publish_address{127.0.0.1:9200},bound_addresses{127.0.0.1:9200},{[::1]:9200}介返,通過瀏覽器訪問發(fā)現(xiàn)無法訪問拴事。

修改配置文件,

vim /usr/local/elasticsearch/config/elasticsearch.yml

添加或修改:network.host:0.0.0.0圣蝎,表示不限制IP訪問

重啟服務(wù)后瀏覽器就能訪問刃宵。


三、ElasticSearch 插件部分簡介

? ? ? ES安裝插件是非常簡單的 都是一句命令搞定 ?插件一般都是存放在github上面 命令會自動去找相應(yīng)目錄下的源碼 下載并安裝到本地的plugin目錄下 也可以使用下載并解壓

? ? ? 1)安裝分詞[編輯]

wget ?https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v1.9.5/elasticsearch-analysis-ik-1.9.5.zip

mkdir ? /usr/local/elasticsearch/plugin/ik

cp ? elasticsearch-analysis-ik-1.9.5.zip ?/usr/local/elasticsearch/plugin/ik

unzip ? elasticsearch-analysis-ik-1.9.5.zip

4) 驗證 創(chuàng)建索引 創(chuàng)建mapping 添加數(shù)據(jù)

創(chuàng)建索引:curl -X PUT? http://localhost:9200/index

創(chuàng)建mapping:

curl ?-X ?POST ? http: //localhost: 9200/index/fulltext/_mapping-d'  {

"fulltext": {

"_all": {

"analyzer": "ik_max_word",

"search_analyzer": "ik_max_word",

"term_vector": "no",

"store": "false"

},

"properties": {

"content": {

"type": "string",

"store": "no",

"term_vector": "with_positions_offsets",

"analyzer": "ik_max_word",

"search_analyzer": "ik_max_word",

"include_in_all": "true",

"boost": 8

}

}

}

}'

插入數(shù)據(jù):

curl ?-X POST http://localhost:9200/index/fulltext/1 -d '{"content":"美國留給伊拉克的是個爛攤子嗎"}'

curl -X ?POST http://localhost:9200/index/fulltext/2 -d '{"content":"公安部:各地校車將享最高路權(quán)"}'

curl -X POST http://localhost:9200/index/fulltext/3 -d '{"content":"中韓漁警沖突調(diào)查:韓警平均每天扣1艘中國漁船"}'

curl ?-X POST http://localhost:9200/index/fulltext/4 -d '{"content":"中國駐洛杉磯領(lǐng)事館遭亞裔男子槍擊嫌犯已自首"}'

查詢數(shù)據(jù)并高亮顯示:

curl ?-X ?POST ?http://localhost:9200/index/fulltext/_search-d'

{

"query":{"term":{"content":"中國"}},

"highlight":{

"pre_tags":["",""], ?//默認(rèn)高亮是em標(biāo)簽

"post_tags":["",""],

"fields":{  "content":{}  }

}

}'

結(jié)果:

{  "took":14,  "timed_out":false,  "_shards":{  "total":5,  "successful":5,  "failed":0  },  "hits":{  "total":2,  "max_score":2,  "hits":[  {  "_index":"index",  "_type":"fulltext",  "_id":"4",  "_score":2,  "_source":{  "content":"中國駐洛杉磯領(lǐng)事館遭亞裔男子槍擊嫌犯已自首"  },  "highlight":{  "content":[  "中國駐洛杉磯領(lǐng)事館遭亞裔男子槍擊嫌犯已自首"  ]  }  },  {  "_index":"index",  "_type":"fulltext",  "_id":"3",  "_score":2,  "_source":{  "content":"中韓漁警沖突調(diào)查:韓警平均每天扣1艘中國漁船"  },  "highlight":{  "content":[  "均每天扣1艘中國漁船"  ]  }  }  ]  }  }

? ?2)JDBC插件安裝 該插件主要是同步數(shù)據(jù)用的 后面會有篇幅去詳細(xì)介紹此部分

? ??[root@localhost bin]# ?cd /opt/elasticsearch

? ? [root@localhost elasticsearch]#? wget http://xbib.org/repository/org/xbib/elasticsearch/importer/elasticsearch-jdbc/2.3.4.0/elasticsearch-jdbc-2.3.4.0-dist.zip

? ? [root@localhostelasticsearch]# ?cp elasticsearch-jdbc-2.3.4.0-dist? /usr/local/elasticsearch/elasticsearch-jdbc-2.3.4.0

? 3) head插件安裝 ?下圖摘自網(wǎng)上

? ? [root@localhost bin]# ?./plugin -install mobz/elasticsearch-head

? ? 會根據(jù)配置文件配置的插件存放位置進(jìn)行安裝 打開http://localhost:9200/_plugin/head即可查看

在地址欄輸入es服務(wù)器的ip地址和端口點connect就可以連接到集群徘公。下面是連接后的視圖牲证。這是主界面,在這里可以看到es集群的基本信息(如:節(jié)點情況关面,索引情況)坦袍。

界面的右邊有些按鈕十厢,如:node stats, cluster nodes键闺,這些是直接請求es的相關(guān)狀態(tài)的api寿烟,返回結(jié)果為json,如下圖:

在索引下面有info和action兩個按鈕辛燥。info是可以查看索引的狀態(tài)和mapping的定義筛武。action是對索引進(jìn)行操作,如:添加別名挎塌、刷新徘六、關(guān)閉索引,刪除索引等榴都。

browser瀏覽界面待锈,這個界面可以同時查看多個索引的數(shù)據(jù),也可以查詢指定字段的數(shù)據(jù)嘴高。

Structured Query查詢界面竿音,這個界面可以對某個索引進(jìn)行一些復(fù)雜查詢,如下面這個例子是查詢product索引拴驮,構(gòu)造boolquery春瞬,title字段里查詢“產(chǎn)品”關(guān)鍵詞,price范圍為10到100的記錄套啤。

Any Request任意請求界面宽气,這個界面可以說是個rest的客戶端,可以通過它來對es進(jìn)行一些請求操作或測試api接口潜沦,下面這個例子是把product索引的副本數(shù)設(shè)置為1萄涯,更多的api可以到es官網(wǎng)查詢。

至此 簡單介紹到此完畢 后續(xù)會更加詳細(xì)的介紹其他知識唆鸡,盡情期待涝影。。争占。袄琳。

? ? ??

? ? ??

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市燃乍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌宛琅,老刑警劉巖刻蟹,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異嘿辟,居然都是意外死亡舆瘪,警方通過查閱死者的電腦和手機(jī)片效,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來英古,“玉大人淀衣,你說我怎么就攤上這事≌俚鳎” “怎么了膨桥?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長唠叛。 經(jīng)常有香客問我只嚣,道長,這世上最難降的妖魔是什么艺沼? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任册舞,我火速辦了婚禮,結(jié)果婚禮上障般,老公的妹妹穿的比我還像新娘调鲸。我一直安慰自己,他們只是感情好挽荡,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布藐石。 她就那樣靜靜地躺著,像睡著了一般徐伐。 火紅的嫁衣襯著肌膚如雪贯钩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天办素,我揣著相機(jī)與錄音角雷,去河邊找鬼。 笑死性穿,一個胖子當(dāng)著我的面吹牛勺三,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播需曾,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼吗坚,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了呆万?” 一聲冷哼從身側(cè)響起商源,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎谋减,沒想到半個月后牡彻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡出爹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年庄吼,在試婚紗的時候發(fā)現(xiàn)自己被綠了缎除。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡总寻,死狀恐怖器罐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情渐行,我是刑警寧澤轰坊,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站殊轴,受9級特大地震影響衰倦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜旁理,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一樊零、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧孽文,春花似錦驻襟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至减牺,卻和暖如春豌习,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拔疚。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工肥隆, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人稚失。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓栋艳,卻偏偏與公主長得像,于是被迫代替她去往敵國和親句各。 傳聞我的和親對象是個殘疾皇子吸占,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

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