elasticsearch7.x教程必看教你如何快速入門,精心概括

一、做者有話要說


elasticsearch是一個基於 Apache Lucene ™ 的開源搜索引擎。不管在開源仍是專有領域,Lucene 能夠被認爲是迄今爲止最早進、性能最好的、功能最全的搜索引擎庫。html

想學習好elasticsearch,首先第一步,就是閱讀官方文檔。目前es的版本有2.x,5.x,6.x,7.x,可見elasticsearch更新多快!!!java

官方文檔連接:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
在這裏插入圖片描述
mysql

點進去看,有些同窗,一會兒就頭暈了。由於是全英語的,不知道如何下手。我寫這一篇的緣由,就是教你如何學習elasticsearch官方文檔的!!!
在這裏插入圖片描述
sql

二、elasticsearch學習的步驟


2.1 elasticsearch的安裝

網上的資料過多,礙於篇幅,略過數據庫

2.2 es安裝軟件 elasticsearch head 安裝

網上的資料過多,礙於篇幅,略過api

在這裏插入圖片描述
具體操做,能夠參考我以前寫的文章:https://blog.csdn.net/qq_34168515/article/details/108428406
服務器

2.3 Query DSL es特定語言

這個是es專門的查詢語言,也是操做es必備的知識,這個是須要掌握的restful

連接:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html數據結構

對於mysql熟悉的人,能夠理解爲mysql的sql語句
在這裏插入圖片描述
es的很是多客戶端,例如:

app

Java REST Client [7.9] — other versions
Java API [7.9] — other versions
JavaScript API [7.x] — other versions
Ruby API [7.x] — other versions
Go API
.NET API [7.x] — other versions
PHP API [7.x] — other versions
Perl API
Python API
eland Client
Rust API
Community Contributed Clients

Query DSL爲上面客戶端的使用提供參考。

2.4 Mapping

elasticsearch和mysql進行對比

在這裏插入圖片描述
主要是講述,mapping對應elasticsearch的數據結構

連接:https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html

在這裏插入圖片描述
elasticsearch 雖然是非關係型數據庫,可是也是須要很強的數據結構,並且數據結構mapping一旦初始化以後,就沒法進行修改的。若是要進行修改,只能從新建立索引,也就是從新建立庫

使用elasticsearch head查看索引的數據結構

在這裏插入圖片描述

2.5 Aggregations聚合查詢

在這裏插入圖片描述

首先,咱們必須明確什麼是聚合查詢

有點相似於 SQL 中的 group by 再加一些函數方法的操做。可是要強大不少。

2.6 elasticsearch rest api

rest api,顧名思義,就是restful風格接口的api,這個是對於咱們開發來講,是很是重要的

常⽤的HTTP動詞有下面五個

GET(SELECT):從服務器取出資源(⼀項或多項)。
POST(CREATE):在服務器新建⼀個資源。
PUT(UPDATE):在服務器更新資源(客戶端提供改變後的完整資源)。
PATCH(UPDATE):在服務器更新資源(客戶端提供改變的屬性)。
DELETE(DELETE):從服務器刪除資源。

在這裏插入圖片描述

三、elasticsearch的專業術語


能夠參考我以前的文章:https://blog.csdn.net/qq_34168515/article/details/108315484

我挑幾個重要的來進行說明

在這裏插入圖片描述

3.1 索引(index)

⼀個索引就是⼀個擁有幾分類似特徵的⽂檔的集合。 至關於MySQL中的數據庫

3.2 映射類型(mapping type)

在⼀個索引中,你能夠定義⼀種或多種類型。⼀個類型是你的索引的⼀個邏輯上的分類/分區,其語義徹底由你來定。一般,會爲具備⼀組共同字段的⽂檔定義⼀個類型。 相似數據庫表 在7.0以後,類型只有⼀種 _doc

3.3 ⽂檔(document)

⼀個⽂檔是⼀個可被索引的基礎信息單元。至關於MySQL中的數據表中的數據,每⼀條數據就是⼀個⽂檔

3.4 分片和副本(shard & replica)

⼀個索引能夠存儲超出單個結點硬件限制的⼤量數據。⽐如,⼀個具備10億⽂檔的索引佔據1TB的磁盤 空間,⽽任⼀節點都沒有這樣⼤的磁盤空間;或者單個節點處理搜索請求,響應太慢。爲了解決這個問 題,Elasticsearch提供了將索引劃分紅多份的能⼒,這些份就叫作分⽚。當你建立⼀個索引的時候,你 能夠指定你想要的分⽚的數量。每一個分⽚自己也是⼀個功能完善而且獨⽴的「索引」,這個「索引」能夠被 放置到集羣中的任何節點上。

分片很重要,主要有兩⽅⾯的緣由:

1)容許你⽔平分割/擴展你的內容容 量。

2)容許你在分⽚(潛在地,位於多個節點上)之上進行分佈式的、並行的操做,進而提⾼性能/吞吐量。

四、java客戶端 Java REST Client

官方地址:https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/index.html

在這裏插入圖片描述

相關文章
相關標籤/搜索