文章目錄
- 1、作者有話要說
- 2、elasticsearch學習的步驟
- 2.1 elasticsearch的安裝
- 2.2 es安裝軟體 elasticsearch head 安裝
- 2.3 Query DSL es特定語言
- 2.4 Mapping
- 2.5 Aggregations聚合查詢
- 2.6 elasticsearch rest api
- 3、elasticsearch的專業術語
- 3.1 索引(index)
- 3.2 映射型別(mapping type)
- 3.3 ?檔(document)
- 3.4 分片和副本(shard & replica)
- 4、java客戶端 Java REST Client
1、作者有話要說
elasticsearch是一個基于 Apache Lucene ? 的開源搜索引擎,無論在開源還是專有領域,Lucene 可以被認為是迄今為止最先進、性能最好的、功能最全的搜索引擎庫,
想學習好elasticsearch,首先第一步,就是閱讀官方檔案,目前es的版本有2.x,5.x,6.x,7.x,可見elasticsearch更新多快!!!
官方檔案鏈接:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

點進去看,有些同學,一下子就頭暈了,因為是全英語的,不知道如何下手,我寫這一篇的原因,就是教你如何學習elasticsearch官方檔案的!!!

2、elasticsearch學習的步驟
2.1 elasticsearch的安裝
網上的資料過多,礙于篇幅,略過
2.2 es安裝軟體 elasticsearch head 安裝
網上的資料過多,礙于篇幅,略過

具體操作,可以參考我之前寫的文章:https://blog.csdn.net/qq_34168515/article/details/108428406
2.3 Query DSL es特定語言
這個是es專門的查詢語言,也是操作es必備的知識,這個是需要掌握的
鏈接:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html
對于mysql熟悉的人,可以理解為mysql的sql陳述句

es的非常多客戶端,例如:
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):從服務器洗掉資源,

3、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)允許你在分?(潛在地,位于多個節點上)之上進行分布式的、并行的操作,進而提?性能/吞吐量,
4、java客戶端 Java REST Client
官方地址:https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/index.html

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/41642.html
標籤:其他
