==================================================================
本篇參考:
https://www.cnblogs.com/chenmc/p/9516100.html
==================================================================
1.基礎概念
Index 索引---DB數據庫
Type 類型---數據表
Document 文檔---表中一條記錄
Field 字段---記錄中的每個列屬性
Shard 分片---對索引進行分片,分布於集群各個節點上,降低單個節點的壓力
Replica 備份---拷貝分片就完成了備份
2.基本語法
接口均符合Rest風格
API基本格式:
http://<IP>:<PORT>/<Index>/<Type>/<Document的ID>
常用HTTP請求方法:
GET/PUT/POST/DELETE
3.對於Index索引的介紹和使用
3.1索引類型
結構化索引:mappings指定了的。可通過PostMan直接調用接口創建,也可以通過kibana的Dev Tools調用接口創建。【文章下面講】
非結構化索引:mappings未指定的,是空的{},可以通過elasticSearch-head創建【參考:https://www.cnblogs.com/chenmc/p/9510514.html】
3.2操作索引
3.2.1 創建名為people的索引[Index],其中指定mappings,包含一個名為man的類型[Type]
url地址:
http://192.168.92.130:9200/people
請求方式:
PUT
請求體格式:
raw
JSON(application/json)
請求體:
{ "settings":{ "number_of_shards":3, "number_of_replicas":1 }, "mappings":{ "man":{ "properties":{ "name":{ "type":"text" }, "country":{ "type":"keyword" }, "age":{ "type":"integer" }, "date":{ "type":"date", "format":"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis" } } } } }
注意:
1》請求方式必須是PUT,否則會報錯:
"error": "Incorrect HTTP method for uri [/people] and method [POST], allowed: [PUT, GET, HEAD, DELETE]"
2》關於請求體的解讀:
3》關於text和keyword數據類型的區別
keyword數據類型和text數據類型都是字符串類型
keyword數據類型不會被分詞,可用以存儲 姓名、郵箱地址、郵政編碼等這類型的文本內容,可以用來檢索過濾、排序、聚合。keyword字段只能用自身來進行檢索!
text數據類型會被分詞。text數據類型用來索引長文本,在建立索引之前即根據配置的分詞器進行分詞,搜索是也會根據配置的分詞器進行搜索,沒配置則使用默認分詞器。text類型不會進行排序和聚合。
4》其他數據類型查看
https://www.cnblogs.com/sxdcgaq8080/p/10207262.html
4.通過Rest接口操作數據
4.1插入數據
4.1.1指定文檔id插入數據
PUT http://ip:port/index/type/id
4.1.2不指定文檔id,則自動產生文檔id插入數據
POST http://ip:port/index/type
4.2修改數據
POST http://ip:port/index/type/id/_update
4.3刪除數據
4.4刪除索引
5.通過Rest接口查詢數據
5.1根據ID查詢
GET http://ip:port/index/type/id
5.2指定條件查詢,分頁,排序
POST http://ip:port/index/_search
注意請求體
5.3分組查詢
5.4 聚合計算