Elasticsearch數(shù)據(jù)庫有哪些特點

這篇文章主要講解了“Elasticsearch數(shù)據(jù)庫有哪些特點”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Elasticsearch數(shù)據(jù)庫有哪些特點”吧!

創(chuàng)新互聯(lián)服務(wù)項目包括梁溪網(wǎng)站建設(shè)、梁溪網(wǎng)站制作、梁溪網(wǎng)頁制作以及梁溪網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,梁溪網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到梁溪省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

1、什么是Elasticsearch
1、概念以及特點
         1、Elasticsearch和MongoDB/redis/Memcache一樣,是非關(guān)系型數(shù)據(jù)庫。是一個接近實時的搜索平臺,從索引這個文檔到這個文檔能夠被搜索到只有一個輕微的延遲,企業(yè)應(yīng)用定位:采用Restful API標(biāo)準(zhǔn)的可擴展和高可用的實時數(shù)據(jù)分析的全文搜索工具。

    2、可拓展:支持一主多從且擴容簡易,只要cluster.name一致且在同一個網(wǎng)絡(luò)中就能自動加入當(dāng)前集群;本身就是開源軟件,也支持很多開源的第三方插件。

    3、高可用:在一個集群的多個節(jié)點中進行分布式存儲,索引支持shards和復(fù)制,即使部分節(jié)點down掉,也能自動進行數(shù)據(jù)恢復(fù)和主從切換。

    3、采用RestfulAPI標(biāo)準(zhǔn):通過http接口使用JSON格式進行操作數(shù)據(jù)。

    4、數(shù)據(jù)存儲的最小單位是文檔,本質(zhì)上是一個JSON 文本:

2、項目中為何使用(主搜索次分析再存儲)
2.1、搜索引擎
         實際項目開發(fā)中,幾乎每個系統(tǒng)都會有一個搜索的功能,數(shù)據(jù)量少時可以直接從主數(shù)據(jù)庫中比如MySQL搜索,但當(dāng)搜索做到一定程度時,比如系統(tǒng)數(shù)據(jù)量上了10億、100億條的時候,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫的I/O性能和統(tǒng)計分析性能就難以滿足用戶需要了。所以很多公司都會把搜索單獨做成一個獨立的模塊,用ElasticSearch等來實現(xiàn)。雖然內(nèi)存緩存數(shù)據(jù)庫的讀寫性能很高,但完全把數(shù)據(jù)放在內(nèi)存中是不太現(xiàn)實的,比如到PB級別的數(shù)據(jù),按照每個節(jié)點96G內(nèi)存計算,在內(nèi)存完全裝滿的數(shù)據(jù)情況下,需要的機器是:1PB=1024T=1048576G ,節(jié)點數(shù)就是1048576/96=10922個 ,再考慮到數(shù)據(jù)備份,節(jié)點數(shù)還需要翻倍,成本巨大決定了其不現(xiàn)實!

2.2、日志分析
   Elasticsearch+ Logstash + Kibana是同一家公司開發(fā)的3個開源工具,可組合起來搭建海量日志分析平臺,目前很多公司都在使用這種方式搭建日志分析平臺進行大數(shù)據(jù)分析。

3、底層架構(gòu)


4、使用狀況以及與其他搜索引擎的對比
         2013年初,GitHub拋棄了Solr,采取ElasticSearch來做PB級的搜索,包括13億文件和1300億行代碼”。

         百度目前廣泛使用ElasticSearch作為文本數(shù)據(jù)分析,采集百度所有服務(wù)器上的各類指標(biāo)數(shù)據(jù)及用戶自定義數(shù)據(jù),通過對各種數(shù)據(jù)進行多維分析展示,輔助定位分析實例異?;驑I(yè)務(wù)層面異常。目前覆蓋百度內(nèi)部20多個業(yè)務(wù)線(包括casio、云分析、網(wǎng)盟、預(yù)測、文庫、直達號、錢包、風(fēng)控等),單集群最大100臺機器,200個ES節(jié)點,每天導(dǎo)入30TB+數(shù)據(jù)。

2、RESTFul 介紹
1、什么是RESTFul
         REST(RepresentationalState Transfer)是一種軟件架構(gòu)的設(shè)計風(fēng)格(不是標(biāo)準(zhǔn)),通過 HTTP接口處理數(shù)據(jù),主要用于客戶端和服務(wù)器的數(shù)據(jù)交互。該風(fēng)格的具體特點——在服務(wù)器端,應(yīng)用程序?qū)ο?、?shù)據(jù)庫記錄、算法、文本、圖片等都是一個實體資源,使用 URI標(biāo)識,所有資源都共享統(tǒng)一的接口(標(biāo)準(zhǔn)的HTTP方法)比如 GET、PUT、POST 和 DELETE,在客戶端和服務(wù)器之間傳輸數(shù)據(jù)。

2、CURL命令的講解
2.1、什么是CURL
    本質(zhì)就是以命令方式發(fā)送HTTP請求,可以完成比如發(fā)送表單信息、文件上傳、分段下載、模擬登錄等,理論上在APP或Web里能操作的通過此指令都能操作。

2.2、具體應(yīng)用


3、Elasticsearch API文檔查看


3、Elasticsearch及相關(guān)插件的安裝
1、安裝Elasticsearch并啟動服務(wù)


2、安裝第三方插件


2.1、Head插件
         是Elasticsearch的一個集群管理工具,可以通過它來查看和搜索ES的數(shù)據(jù),是完全由html5編寫的獨立網(wǎng)頁程序。

2.2、Bigdesk插件
         是Elasticsearch的一個集群監(jiān)控工具,可以通過它來查看ES集群的各種狀況,如cpu、內(nèi)存使用情況、索引數(shù)據(jù)、搜索情況、http連接數(shù)等。

2.3、Mavel插件


4、倒排索引(ES具體是怎么搜索的)
1、倒排索引和正向索引
         在全文搜索里,文檔數(shù)據(jù)離不開搜索,而搜索離不開索引(沒有索引搜索會很低效),倒排索引(Inverted index)是全文搜索系統(tǒng)里最高效的索引方法和數(shù)據(jù)結(jié)構(gòu),ES的索引就是倒排索引。也稱反向索引/置入索引或反向檔案,用以存儲一個映射:在全文搜索下某個單詞在一個文檔或者一組文檔中的位置。

2、倒排索引建立索引的具體方式
始、確定需求
         在這5份文檔中根據(jù)關(guān)鍵字“喬布斯”搜索匹配的文檔,附屬要求:文檔的排序,這個搜索關(guān)鍵字在每個匹配文檔中出現(xiàn)的位置和次數(shù)。

1、把文檔進行分詞(怎么分要看實際需求)


2、得到單詞集合和文檔集合(使用ID標(biāo)記)


3、根據(jù)上面?zhèn)z集合得到這個矩陣/數(shù)據(jù)結(jié)構(gòu)


4、根據(jù)上表建立索引


終、實現(xiàn)需求了


5、ES的CURD操作
1、ES的API(本次在Mevel里演示,等同head和curl)
1.1、操作索引的API
 

1.2、操作類型的API


1.3、操作文檔的API(每次僅能操作一個文檔)


2、ES的內(nèi)置字段以及字段的類型


6、批量操作文檔
         上節(jié)介紹的關(guān)于《操作文檔的API》都只能對單個文檔進行增刪改查,mget用于批量檢索多個文檔,bulk用以批量創(chuàng)建/更新/刪除多個文檔。

1、通過mget批量檢索多個文檔


2、通過bulk批量創(chuàng)建/更新/刪除多個文檔
1、bulk的使用規(guī)范和使用案例


2、bulk處理文檔大小的最佳值


7、Elasticsearch的鎖機制
1、為什么要使用鎖機制


2、加鎖的機制:悲觀鎖和樂觀鎖
         悲觀鎖和樂觀鎖是什么已經(jīng)在《Mysql.docx》介紹了。

    1、其中提到對于數(shù)據(jù)庫而言,悲觀鎖只能通過數(shù)據(jù)庫本身實現(xiàn),但是ES并沒有提供悲觀鎖機制。

    2、其中也提到對于數(shù)據(jù)庫而言,樂觀鎖是通過邏輯實現(xiàn)的,在ES數(shù)據(jù)庫上實現(xiàn)樂觀鎖便是通過文檔的默認字段_version實現(xiàn)的。

3、ES實現(xiàn)樂觀鎖的兩種方式
         前提:兩種修改文檔(_update更新和put覆蓋)的方式都會導(dǎo)致目標(biāo)文檔的_version自增1或者直接改為指定的。

3.1、內(nèi)部版本控制
         指定的version必須要 = 文檔目前的_version,否則就報error。如果符合就修改成功,并且把文檔version自增1。

3.2、外部版本控制
         搭配version_type=external,指定的version必須 > 文檔目前的_version,否則就報error。如果符合就修改成功,并且把文檔version直接變成指定的。

8、Elasticsearch如何做Mapping
1、什么是mapping
         映射就是在創(chuàng)建索引或者先創(chuàng)建索引后修改的時候,預(yù)先定義字段的數(shù)據(jù)類型以及相關(guān)屬性。

   如果程序員沒有主動為索引創(chuàng)建映射,則以后在創(chuàng)建文檔時,ES會智能的給索引建立映射,處理每個字段的數(shù)據(jù)類型和屬性。

2、ES里可以為字段定義哪些數(shù)據(jù)類型和屬性


3、關(guān)于映射的具體操作


9、ES查詢


1、基本查詢


1、使用q查詢


2、使用term系列查詢
1、使用term查詢


2、使用terms查詢


3、使用match系列查詢(有智能搜索的效果)
1、使用match查詢


2、使用match_phrase查詢


3、使用multi_match查詢


4、使用match_all查詢


5、使用prefix作前綴匹配查詢


6、使用range作區(qū)間搜索


7、使用wildcard查詢


8、使用fuzzy進行模糊搜索(有智能搜索的效果)


1、使用fuzzy查詢


2、使用fuzzy_like_this查詢


3、使用fuzzy_like_this_field查詢


2、組合查詢和過濾查詢
    當(dāng)在請求中看到must(and)、should(or)、must_not(not)、filtered、filter、exists、gt、lt、missing、negative、negative_boost、_cache、constant_score、not_match_query、indices等詞時,就是使用了組合查詢或者過濾查詢,太麻煩,不研究了。僅介紹下圖這一種,使用bool也是最常用的:

3、查詢的輔助字段,用以處理結(jié)果集
1、使用from和size控制返回文檔的數(shù)量


2、使用version返回文檔的_version


3、使用fields返回指定字段


4、使用partial_fields返回指定字段


5、使用sort排序


6、使用通配符,通常是用在字段名中


10、ES集群管理
1、ES的數(shù)據(jù)為何是安全的


2、elasticsearch.yml文件配置

感謝各位的閱讀,以上就是“Elasticsearch數(shù)據(jù)庫有哪些特點”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Elasticsearch數(shù)據(jù)庫有哪些特點這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

當(dāng)前名稱:Elasticsearch數(shù)據(jù)庫有哪些特點
URL分享:http://bm7419.com/article44/gipehe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站全網(wǎng)營銷推廣、品牌網(wǎng)站建設(shè)、微信小程序、App設(shè)計自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司