一、索引創建 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 返回結果