【Elasticsearch】【基礎(chǔ)】入門
一、elasticsearch是什么

elasticsearch是基于ApacheLucene全文搜索引擎庫實現(xiàn)的一個實時的開源分布式搜索引擎。
Elasticsearch是一個分布式文檔存儲。Elasticsearch存儲已序列化為JSON文檔的復(fù)雜數(shù)據(jù)結(jié)構(gòu),而不是將信息存儲為列形數(shù)據(jù)行。當(dāng)您在集群中擁有多個Elasticsearch節(jié)點時,存儲的文檔會分布在集群中,并且可以從任何節(jié)點訪問。
二、Elasticsearch能做什么
支持實時高效全文檢索,支持實時高效結(jié)構(gòu)化檢索、分析
支持分布式實時文檔存儲
支持PB級的結(jié)構(gòu)化或非結(jié)構(gòu)化數(shù)據(jù)
支持拓展,Elasticsearch可配置并且靈活。
支持通過RestAPI與應(yīng)用程序進行通信
三、Elasticsearch怎么安裝(windows環(huán)境)
需要安裝最新的java版本,因為ES也是java語言編寫的,需要JVM的支持
下載最新版的Elasticsearch并解壓(選擇適合的操作系統(tǒng)版本,本次選擇windows)
進入解壓目錄,cd到bin目錄,運行elasticseach.bat文件,查看運行結(jié)果是否成功。
運行elasticsearch文件成功后,瀏覽器訪問http://localhost:9200/,響應(yīng)結(jié)果如下:
{
"name" : "主機名",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "yqQn9A1fTzKfR064ypqT9w",
"version" : {
"number" : "7.3.2",
"build_flavor" : "default",
"build_type" : "zip",
"build_hash" : "1c1faf1",
"build_date" : "2019-09-06T14:40:30.409026Z",
"build_snapshot" : false,
"lucene_version" : "8.1.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
收到上面的響應(yīng)之后,證明已經(jīng)啟動并運行一個Elasticsearch節(jié)點了。
如果想搭建一個集群啟動多個節(jié)點則可以修改config目錄下的elasticsearch.yaml文件,文件里面都有詳細的配置說明,修改完yaml配置文件之后重啟elasticsearch就會生效。
exit退出即可停止elasticsearch服務(wù)
四、如何在應(yīng)用程序中使用Elasticsearch
Elasticsearch安裝后,應(yīng)用程序客戶端都可以通過Elasticsearch提供等RestAPI進行與ES通信交互,如通過curl向ES發(fā)送請求;不區(qū)分語言,同時官方也提供了很多不同語言的客戶端庫和插件。比如提供了java相關(guān)的客戶端庫,在寫java程序的時候,只需要依賴這些庫
一個Elasticsearch請求curl組成:
curl -X
verb:適當(dāng)?shù)膆ttp方法:GET,POST,PUT,HEAD,DELETE
protocol: http或者https
host:Elasticsearch集群中任意節(jié)點的主機名,或者使用localhost表示本機
port: 運行Elasticseach HTTP服務(wù)的端口號,默認是9200
path:API的終端路徑(例如_count路徑表示返回集群中文檔數(shù)量),path可能包含多個組件,例如_cluster/stats或_nodes/stats/jvm
query_string:查詢字符串參數(shù)
body:一個json格式的請求體(如果需要的話)
配合kibana可視化操作Elasticsearch,簡單高效
官網(wǎng)下載kibana
解壓到指定目錄,根據(jù)需要在config目錄下修改kibana.yaml配置文件,如server.port,server.host和連接es的elasticsearch.hosts等參數(shù)
進入解壓的bin目錄下,執(zhí)行啟動文件,如windows的啟動kibana.yaml
使用設(shè)置的host+port在瀏覽器上訪問,如http://localhost:5601
瀏覽器訪問/status路徑可查看狀態(tài),如http://localhost:5601/status
打開路徑,連接上es服務(wù)后,在kibana頁面上就可以創(chuàng)建es的索引,就可以分析探索你的數(shù)據(jù)了
對es數(shù)據(jù)進行命令的直接操作可以使用Dev Tools控制臺,通過命令行與es進行操作交互。
五、Elasticsearce基本概念
索引index:每個索引是一系列文檔優(yōu)化的集合,相當(dāng)于關(guān)系數(shù)據(jù)庫中的database
文檔document:每個文檔都是字段的集合,相當(dāng)于關(guān)系數(shù)據(jù)庫中表的行數(shù)據(jù)rows
類型type:表示一類類似的文檔,相當(dāng)于關(guān)系數(shù)據(jù)中的表table
字段field:每個字段都是包含key-value鍵值對的數(shù)據(jù),相當(dāng)于關(guān)系數(shù)據(jù)庫中表的列columns
映射mapping:類似于DB的schema,描述這一個類型type中的所有文檔可能具有的字段或?qū)傩?,以及這些字段的類型,并且描述如何索引和存儲這些字段
分片shards:是指將索引劃分成多份,每一份就是一個分片,也叫主分片;分片分為兩類:主分片和復(fù)制分片,這些分片都是一個獨立的索引,可以被放置在集群中的任何節(jié)點上,方便數(shù)據(jù)拓展和平衡集群,同時可以復(fù)制分片,復(fù)制分片不會被分配在與主分片所在的節(jié)點上,復(fù)制分片主要作用于故障轉(zhuǎn)移機制。
節(jié)點node:一個節(jié)點就是一個ES實例,第一個啟動的節(jié)點默認就是master節(jié)點,其余節(jié)點都可以是候選節(jié)點(通過node.master設(shè)置),當(dāng)master節(jié)點崩了,這些候選節(jié)點就有機會選取為master節(jié)點;每個節(jié)點都保存了集群信息的狀態(tài),只有master節(jié)點才能修改集群的狀態(tài)信息。
Elasticsearch是面向文檔(document oriented)的,它可以存儲整個對象或文檔(document)。然而它不僅僅是存儲,還會索引(index)每個文檔的內(nèi)容使之可以被搜索。在Elasticsearch中,你可以對文檔(而非成行成列的數(shù)據(jù))進行索引、搜索、排序、過濾。
在Elasticsearch中,文檔歸屬于一種類型(type),而這些類型存在于索引(index)中,我們可以簡單的對比傳統(tǒng)關(guān)系型數(shù)據(jù)庫:
Relational DB -> Databases -> Tables -> Rows -> Columns
Elasticsearch -> Indices?? -> Types? -> Documents -> Fields
六、使用場景
在應(yīng)用程序或者網(wǎng)站中添加搜索框的場景
存儲和分析日志、指標(biāo)和安全事件數(shù)據(jù)的場景
使用機器學(xué)習(xí)實時自動建模的行為數(shù)據(jù)的場景
使用es作為存儲介質(zhì)自動執(zhí)行業(yè)務(wù)工作流
使用es作為地理信息系統(tǒng)(GIS)管理、集成和分析空間信息
使用es作為生物信息學(xué)研究工具存儲和處理遺傳數(shù)據(jù)
Elasticsearch Java 實時流計算服務(wù) CS
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。