1. ElasticSearch簡介
1.1 什麼是ElasticSearch?
- 實時的分佈式搜索和分析引擎。
- 基於
Lucene
的搜索服務器。提供了一個分佈式多用戶能力的全文搜索引擎 - 基於
RESTful web
接口。Elasticsearch是用Java開發的, 是當前流行的企業級搜索引擎。 - 設計用於雲計算中,能夠達到實時搜索,穩定,可靠,快速,安裝使用方便。
1.2 ES特點
- 開箱即用,部署簡單。
- 可以作爲一個大型分佈式集羣(數百臺服務器)技術,處理PB級數據,服務大公司;也可以運行在單機上。
- ES將全文檢索、數據分析以及分佈式技術,合併在一起。
- 全文檢索,同義詞處理,相關度排名,複雜數據分析,海量數據的近實時處理 。
1.3 ES邏輯結構
ElasticSearch | MySQL |
---|---|
索引(index) | 數據庫(db) |
類型(type) | 表(table) |
文檔(document) | 行(row) |
2. 快速入門
2.1 ElasticSearch安裝
我安裝的是ElasticSearch5.6.8
的。
我下載的是.zip
,所以解壓之後就可以用了。
- 第一步:
cd 安裝目錄/bin
- 第二步: 然後在地址欄中輸入
cmd
- 第三步:在命令行窗口中輸入
elasticsearch
,回車。 - 啓動成功!
因爲ES支持Restful,所以我在這裏用postman來測試。
端口默認是9200
2.2 新建索引
上邊說過索引index
就相當於mysql
的數據庫。下面在ES中新建一個索引。
- 用
put
方式提交 hello_world_index
爲我們新建的索引名稱。
2.3 新建文檔
文檔就相當於MySQL
中的行.
- 以post方式提交
http://ip:port/索引名/類型名
- body中的內容請選擇
application/json
格式,其他格式會報錯。
2.4 查詢所有文檔
- 查詢
某索引某類型
的全部數據 - 以get方式請求
http://ip:port/索引名/類型名/_search
2.5 修改文檔
put
方式提交- 格式:
http://ip:port/索引名/類型名/文檔_id
body
中填寫修改內容
- 例如我們要修改
_id
爲AXE6IQ0gYH-LaeHdYmtp
的記錄:
- 若我們想要修改的
_id
不存在,則會創建新文檔,並且新文檔的_id
就是你請求url後邊的id。
2.6 按ID查詢文檔
- get方式請求
- 格式:
http://ip:port/索引名/類型名/id
例如我們要查詢_id
爲AXE6IQ0gYH-LaeHdYmtp
的記錄:
2.7 基本匹配查詢
- 根據某列進行查詢
- get方式提交
- 格式:
http://ip:port/索引名/類型名/_search?q=列名:值
例如查詢userName
= aaaa
的文檔:
2.8 模糊查詢
可以使用*代表任意字符:
- 格式:
http://ip:port/索引名/類型名/_search?q=列名:值
- 將url中的
值
部分插入*
達到模糊匹配的效果。
例如:查詢userName
開頭是aa
的文檔。
2.9 刪除文檔
- 根據ID刪除文檔
- delete方式提交
- 格式:
http://ip:port/索引名/類型名/文檔id
例如我們要刪除_id
爲AXE6IQ0gYH-LaeHdYmtp1
的記錄
**注意觀察:**相應的數據中,result
字段標識我們所作的操作。
ES的基本操作到這裏算是結束了。
其實這樣操作很麻煩,工作中往往會用一些插件,比如Head
插件。