ealsticsearch只是後端提供各種api,那麼怎麼直觀的使用它呢?elasticsearch-head將是一款專門針對於elasticsearch的客戶端工具, elasticsearch-head配置包,下載地址:https://github.com/mobz/elasticsearch-head
安裝插件
安裝elasticsearch-head插件
安裝docker鏡像或者通過github下載elasticsearch-head項目都是可以的,1或者2兩種方式選擇一種安裝使用即可
1. 使用docker的集成好的elasticsearch-head
# docker run -p 9100:9100 mobz/elasticsearch-head:5
docker容器下載成功並啓動以後,運行瀏覽器打開http://localhost:9100/
2. 使用git安裝elasticsearch-head
# yum install -y npm
# git clone git://github.com/mobz/elasticsearch-head.git
# cd elasticsearch-head
# npm install
# npm run start
檢查端口是否起來
netstat -antp |grep 9100
瀏覽器訪問測試是否正常
http://IP:9100/
es6.0的版本不支持,瀏覽器請求頭信息帶Content-Type header [application/x-www-form-urlencoded], 如果使用老版本的elasticsearch-head服務端的es會返回下面的錯誤信息,{"error":"Content-Type header [application/x-www-form-urlencoded] is not supported","status":406}
需要修改 _site/vendor.js 。找到對應的行 if ( !s.crossDomain && !headers["X-Requested-With"] ) { 的前面增加一行
headers["Content-Type" ] = "application/json"
默認es是不支持跨域訪問的,
應該是es默認不支持跨域訪問的,所以需要重新配置。
如何解決es不支持跨域訪問?
在/etc/elasticsearch/elasticsearch.yml
配置文件中加入以下內容,然後重啓服務。
http.cors.enabled: true
http.cors.allow-origin: "*"
索引管理
1.概覽
通過下圖可以看到我們的節點名稱爲my-application,並且該節點下的索引信息
在users下,選擇信息-->索引信息,可以查看該索引的所有信息,包括mappings、setting等等
在對應索引的右側,bank索引右側,選擇動作-->關閉/開啓,可以關閉/開啓該索引,關閉後的索引如圖:
2、索引
在這裏,可以查看到所以的索引,並且還可以創建一個新的索引,如下圖:
數據管理
1、RESTful接口使用方法
爲了方便直觀我們使用Head插件提供的接口進行演示,實際上內部調用的RESTful接口。
RESTful接口URL的格式:
http://localhost:9200///[]
其中index、type是必須提供的。
id是可選的,不提供es會自動生成。
index、type將信息進行分層,利於管理。
index可以理解爲數據庫;type理解爲數據表;id相當於數據庫表中記錄的主鍵,是唯一的。
2. 文檔索引的創建
將如下一條歌曲信息的數據提交到ES中創建索引:
url:http://localhost:9200/users/china/5/
data:{ "name": "朱玉兵", "sex": "男", "email": "[email protected]"}
索引名字是:users;
索引的類型是:china;
本記錄的id是:5
返回的信息可以看到創建是成功的,並且版本號是1;ES會對記錄修改進行版本跟蹤,第一次創建記錄爲1,同一條記錄每修改一次就追加1。
至此一條記錄就提交到ES中建立了索引,注意HTTP的方法是PUT,不要選擇錯了。
3、索引文檔的查詢
根據索引時的ID查詢的文檔的RESTful接口如下
url:http://localhost:9200/users/china/5/
HTTP方法採用GET的形式。
4、索引文檔的更新
根據索引時的ID更新的文檔的內容其RESTful接口如下
url:http://localhost:9200/users/china/5/
HTTP方法採用PUT的形式。
將name字段由“朱玉兵”改成“robinhunan”;
結果中的version字段已經成了2,因爲我們這是是修改,索引版本遞增;created字段是false,表示這次不是新建而是更新。
更新接口與創建接口完全一樣,ES會查詢記錄是否存在,如果不存在就是創建,存在就是更新操作。
5、索引文檔的刪除
根據索引時的ID更新的文檔的內容其RESTful接口如下
url:http://localhost:9200/ users/china/5
HTTP方法採用DELETE的形式。
刪除過後,再通過查詢接口去查詢將得不到結果。
3、數據瀏覽
這裏可看到索引、類型、字段、數據信息,如下圖所示: