ElasticSearch學習筆記

2021-09-29 04:30:19 字數 3285 閱讀 7757

核心概念:

(1)near realtime(nrt):近實時,兩個意思,從寫入資料到資料可以被搜尋到有乙個小延遲(大概1秒);基於es執行搜尋和分析可以達到秒級

(2)cluster:集群,包含多個節點,每個節點屬於哪個集群是通過乙個配置(集群名稱,預設是elasticsearch)來決定的,對於中小型應用來說,剛開始乙個集群就乙個節點很正常

(3)node:節點,集群中的乙個節點,節點也有乙個名稱(預設是隨機分配的),節點名稱很重要(在執行運維管理操作的時候),預設節點會去加入乙個名稱為「elasticsearch」的集群,如果直接啟動一堆節點,那麼它們會自動組成乙個elasticsearch集群,當然乙個節點也可以組成乙個elasticsearch集群

(4)document&field:文件,es中的最小資料單元,乙個document可以是一條客戶資料,一條商品分類資料,一條訂單資料,通常用json資料結構表示,每個index下的type中,都可以去儲存多個document。乙個document裡面有多個field,每個field就是乙個資料字段。

product document

| elasticsearch | |資料庫

|-document-|-行-|

|-type-|-表-|

|-index-|-庫-|

常用命令:

1、快速檢查集群的健康狀況:get /_cat/health?v

如何快速了解集群的健康狀況?green、red、yellow?

green:每個索引的primary shard和replica shard都是active狀態的

yellow:每個索引的primary shard都是active狀態的,但是部分replica shard不是active狀態

red:不是所有索引的primary shard和replica shard都是active狀態的,部分索引有資料丟失

2、快速查詢集群中有那些索引:get/_cat/indices?v

3、建立索引:put /index/type/id

新增商品:

put /ecommerce/product/1

put /ecommerce/product/2

put /ecommerce/product/3

4、刪除索引:delete /test_index?pretty

5、查詢索引:get /index/type/id

查詢商品:

get /ecommerce/product/1

}

6、修改索引:替換文件

put /ecommerce/product/1

替換方式有乙個不好,即使必須帶上所有的field,才能去進行資訊的修改

7、修改索引:更新文件

post /ecommerce/product/1/_update

}

8、刪除索引:刪除文件

delete /ecommerce/product/1

9、搜尋全部資料:get /ecommerce/product_search

timed_out:是否超時,這裡是沒有

_shards:資料拆成了5個分片,所以對於搜尋請求,會打到所有的primary shard(或者是它的某個replica shard也可以)

hits.total:查詢結果的數量,3個document

hits.max_score:score的含義,就是document對於乙個search的相關度的匹配分數,越相關,就越匹配,分數也高

hits.hits:包含了匹配搜尋的document的詳細資料

該搜尋方式語法類似於http請求,如搜尋商品名稱中包含yagao的商品且按照售價進行降序排列的查詢語句為:

get /commerce/product/_search?q=name:yagao&sort=price:desc

10、按特定領域查詢資料:

get /index/type/_search}}

1)查詢所有商品:

get /ecommerce/product/_search

}}

2)查詢名字中包含yagao的商品並按**降序排列:

get /ecommerce/product/_search

}, "sort":}

3)分頁查詢商品

分頁每頁顯示1條,顯示第二頁

get /ecommerce/product/_search

}, "from":1,

"size":1

}

4)指定要查詢出商品的**和名稱就可以

更加適合生產環境的使用,可以構建複雜的查詢

5)搜尋商品名稱中包含yagao,而且**大於25元的商品

get /ecommerce/product/_search

},"filter": }}

}}}

6)全文搜尋

get /ecommerce/product/_search

}}

producer這個屬性先被拆分建立倒排索引

7)短語搜尋

查詢producer欄位包含「yagao producer 」的商品資訊

get /ecommerce/product/_search

}}

8)高亮搜尋結果

將producer欄位包含「gaolujie」的商品prducer高亮

elasticsearch學習入門

由於es更新很快,本文這類快餐式的記錄僅供參考 es的官網有比較全面的api,但我看過以後感覺api的層次還是有點亂,至少沒有mongodb的文件那麼簡單易讀。從簡單的應用開始慢慢認識es的。比如要搭建個中文新聞資訊的搜尋引擎,新聞有 標題 內容 作者 型別 發布時間 這五個字段 我們要提供 標題和...

elasticsearch 入門學習

原文 1 思考 大規模資料如何檢索 當系統資料量上了10億 100億條的時候,我們在做系統架構的時候通常會從以下角度去考慮問題 2 傳統資料庫的應對解決方案 對於關係型資料,我們通常採用以下或類似架構去解決查詢瓶頸和寫瓶頸 3 非關係型資料庫的解決方案 對於nosql資料庫,以mongdb為例,其它...

Elasticsearch 學習筆記

參考 關係型資料庫 elasticsearch 資料庫database索引index,支援全文檢索 表table型別type 資料行row文件document,但不需要固定結構,不同文件可以具有不同字段集合 資料列column字段field 模式schema 索引字段型別numeric dataty...