ES-實戰

来源:https://www.cnblogs.com/love-jk/archive/2019/08/18/es-act.html
-Advertisement-
Play Games

一、索引創建 1. 非結構化創建 2. 結構化創建 二、插入 1. 指定文檔ID插入 2. 自動產生文檔ID插入 三、修改 1. 直接修改文檔 2. 腳本修改文檔 四、刪除 1. 刪除文檔 2. 刪除索引 五、查詢 1. 簡單查詢 2. 條件查詢 3. 聚合查詢 ...


 一、環境準備 操作系統:mac 依賴的軟體:JDK1.8、Postman、NodeJs6.0以上、Maven、Idea ES下載:Elastic官方網站: http://www.elastic.co 、版本:elasticsearch-7.1.0-darwin-x86_64.tar 集群模式:一主兩從,集群安裝參考:https://www.cnblogs.com/liuxiaoming123/p/8081883.html ES可視化管理插件:GitHub上尋找:elasticsearch-head   二、實際操作   1. 啟動集群 進入到各自的bin目錄 sh ./elasticsearch   2. 啟動管理插件 在這個插件目錄下:npm run start   3. 實際操作  API基本格式:http://ip:port/索引/類型/文檔id 常用http動詞:GET/PUT/POST/DELETE     目錄: 一、索引創建 1. 非結構化創建 2. 結構化創建 二、插入 1. 指定文檔ID插入 2. 自動產生文檔ID插入 三、修改 1. 直接修改文檔 2. 腳本修改文檔 四、刪除 1. 刪除文檔 2. 刪除索引 五、查詢 1. 簡單查詢 2. 條件查詢 3. 聚合查詢   正文: 一、索引創建 1. 非結構化創建 1.1 瀏覽器輸入:localhost:9100 1.2 點索引tab頁,並創建索引   輸入索引名稱:task,分片數:5,副本數: 1,點OK 彈出如下提示:表示創建成功,點確定   出現下圖: 1.3 在預覽中查看   1.4 點索引信息,查看結構化和非結構化索引信息   2. 結構化創建 2.1 點擊 複合查詢 2.2 加入:task/novel/_mappers { "novel": { "properties": { "title": { "type": "text" } } } }     2.3 勾選易讀   2.4點擊 驗證JSON   2.5點擊 提交請求 2.6 點擊概覽,刷新頁面   2.7 在postman中編寫json字元串(採取put提交方式提交) 註意:從7.0版本及之後的版本寫法和之前的版本有很大的區別 在Elasticsearch 7.0.0或更高版本中創建的索引可能只包含單個映射類型。在具有多種映射類型的5.x中創建的索引將繼續像以前一樣在Elasticsearch 6.x中運行。映射類型將在Elasticsearch 7.0.0中完全刪除。   2.8 刷新頁面,看索引信息中的mapping   mappings不為空,為結構化創建索引   二、插入   1. 指定文檔ID插入 postman中的請求:127.0.0.1:9200/people/_doc/1 請求內容: { "name":"小宋", "country":"china", "age":26, "date":"1992-08-08" } 控制台刷新 進行數據瀏覽,看插入的數據   2. 自動產生文檔ID插入 postman輸入(post請求):127.0.0.1:9200/people/_doc/ 寫入內容 { "name":"小宋自動生產", "country":"china", "age":26, "date":"1992-08-08" }   刷新控制台   看數據預覽     三、修改 1. 直接修改文檔 postman輸入(post):127.0.0.1:9200/people/_doc/1/_update 修改內容 { "doc":{ "name":"小宋-天地玄黃" } } 點send,看一下 刷新一下數據瀏覽,id=1的 name 被修改了     2. 腳本修改文檔 1)方式一: postman中輸入(post):127.0.0.1:9200/people/_doc/1/_update 修改內容 { "script":{ "lang":"painless", "inline":"ctx._source.age += 10" } } send執行: 刷新控制台,看數據瀏覽     2)方式二 postman輸入(post):127.0.0.1:9200/people/_doc/1/_update 修改內容: { "script":{ "lang":"painless", "inline":"ctx._source.age = params.age", "params":{ "age":100 } } } send執行 控制台刷新,看數據瀏覽,age變成了100     四、刪除 1. 刪除文檔 概覽中,點people下的動作,展開列表,看刪除,   點刪除,彈出刪除確認對話框,需要輸入“刪除”兩個字,才能刪除   2. 刪除索引 postman輸入(delete):127.0.0.1:9200/people/_doc/1 刪除時,不需要輸入內容 執行send   五、查詢 1. 簡單查詢 postman輸入(get):127.0.0.1:9200/people/_doc/1 不用輸入內容: 執行send,看查詢結果 2. 條件查詢 match_all 是全部查詢 query 是查詢關鍵字 from 是從哪裡查 size 是顯示多少條數據 sort 是排序設置 1)方式1,查詢全部 postman輸入(post):127.0.0.1:9200/people/_search 查詢條件: { "query":{ "match_all":{} }, "from":1, "size":3 } 查詢全部,match_all 為 {}       2)方式2:按關鍵字查詢 postman中輸入(post):127.0.0.1:9200/people/_search 查詢條件: { "query":{ "match":{ "name":"小宋" } }, "sort":[ {"_id":"desc"} ] } people中帶小宋的,都查詢出來,並且按id排倒敘       3. 聚合查詢 聚合提供了用戶進行分組和數理統計的能力,可以把聚合理解成SQL中的GROUP BY和分組函數 指標聚合/桶聚合 Metrics(度量/指標):簡單的對過濾出來的數據集進行avg,max操作,是一個單一的數值 Bucket(桶):將過濾出來的數據集按條件分成多個小數據集,然後Metrics會分別作用在這些小數據集上   postman輸入(post):127.0.0.1:9200/people/_search 查詢條件: { "aggs":{   "group_by_date":{ "terms":{ "field":"date" } }, "group_by_age":{ "terms":{ "field":"age" } }   } } 執行send 返回結果