Elasticsearch-head插件使用小結

一、ElasticSearch-head是什麼?

ElasticSearch是一個基於Lucene的搜索服務器。它提供了一個分佈式多用戶能力的全文搜索引擎,基於RESTful web接口。Elasticsearch是用Java開發的,並做爲Apache許可條款下的開放源碼發佈,是當前流行的企業級搜索引擎。              -----百度百科html

而ElasticSearch-head就是一款能鏈接ElasticSearch搜索引擎,並提供可視化的操做頁面對ElasticSearch搜索引擎進行各類設置和數據檢索功能的管理插件,如在head插件頁面編寫RESTful接口風格的請求,就能夠對ElasticSearch中的數據進行增刪改查、建立或者刪除索引等操做。相似於使用navicat工具鏈接MySQL這種關係型數據庫,對數據庫作操做。python

對於如何安裝ElasticSearch和ElasticSearch-head下面不作說明,百度下,網上有不少資料~mysql

二、ElasticSearch-head頁面介紹

2.1 head插件登錄和鏈接ElasticSearch

在登錄和訪問head插件地址和ElasticSearch前須要事先在服務器上安裝和配置好ElasticSearch以及head插件。安裝完後,默認head插件的web端口爲9100,ElasticSearch服務的端口爲9200,使用瀏覽器訪問head地址,如http://IP地址:9100/,推薦使用Chrome瀏覽器,head插件對Chrome瀏覽器兼容更佳。進入head頁面後將ElasticSearch鏈接輸入框中填寫正確的ElasticSearch服務地址,如http://IP地址:9200/。訪問後效果以下圖:web

2.2 head插件頁面

概覽頁面:sql

上圖爲概覽頁面效果,簡單說明下以上5個畫了紅框的地方數據庫

1:集羣健康值。Elasticsearch 中其實有專門的衡量索引健康情況的標誌,分爲三個等級:json

  • green,綠色。這表明全部的主分片和副本分片都已分配。你的集羣是 100% 可用的。
  • yellow,黃色。全部的主分片已經分片了,但至少還有一個副本是缺失的。不會有數據丟失,因此搜索結果依然是完整的。不過,你的高可用性在某種程度上被弱化。若是更多的分片消失,你就會丟數據了。因此可把 yellow 想象成一個須要及時調查的警告。
  • red,紅色。至少一個主分片以及它的所有副本都在缺失中。這意味着你在缺乏數據:搜索只能返回部分數據,而分配到這個分片上的寫入請求會返回一個異常。

若是隻有一臺主機的話,其實索引的健康情況也是 yellow,全部上圖顯示爲yellow。由於一臺主機,集羣沒有其餘的主機能夠防止副本,因此說,這就是一個不健康的狀態,所以集羣也是十分有必要的。瀏覽器

2:表示在Elasticsearch已經建立的索引(index)。包含了索引的名稱、索引的大小(size)、索引的數據量(docs),而且經過【信息】和【動做】能夠查看索引信息或者給索引建別名。服務器

3:表示Elasticsearch節點。上圖中的帶有感嘆號的Unassigned表示未分配的節點,帶有星號的表示是主節點,其節點名稱叫:Hu9Suoy,並能查看節點信息。elasticsearch

4:表示索引分片,Elasticsearch數據就存儲在這些分片中。

5:查看Elasticsearch相關的信息和刷新head插件。如查看Elasticsearch版本信息,以下圖:

索引頁面:

索引頁面能看到當前Elasticsearch中已經建立的索引,這裏的索引相似於傳統關係型數據庫中的一張張表,而且能夠在該頁面上新建索引。

數據瀏覽頁面:

數據瀏覽頁面能查看全部索引分片的數據

基本查詢和複合查詢頁面:

這兩個頁面作數據檢索,基本查詢頁面僅提供簡單的查詢並不能修改數據,複合查詢頁面提供編寫RESTful接口風格的請求,來對Elasticsearch中的數據進行各類增刪改查等操做請求,其頁面分別以下:

基本查詢頁面

複合查詢頁面

三、基本查詢

基本查詢頁面能夠對數據進行簡單的查詢。

查詢關鍵字有三種:分別是:must,should,must_not

  • must子句:文檔必須匹配must查詢條件,至關於「=」;
  • should子句:文檔應該匹配should子句查詢的一個或多個;
  • must_not子句:文檔不能匹配該查詢條件,至關於「!=」;

以下圖基本查詢實例:

默認返回結果使用table展現,即表格形式,還有json、csv形式展現

其中檢索條件有諸多,以下圖:

一般term表示精確匹配,wildcard : 通配符匹配  prefix:前綴匹配,range區間查詢,如使用wildcard查找帶有「粵BN69」的數據:

其它的檢索條件也能夠嘗試檢索下

四、複合查詢

複合查詢頁面提供編寫RESTful接口風格的請求,使用json進行復雜的查詢,也可發送put請求新增及更新索引,使用delete請求刪除索引等等來對Elasticsearch中的數據或者索引進行各類增刪改查等操做請求。

ES以RESTFul風格來命名API的, 其API的基本格式相似以下:

以http來決定請求的方法或者動做: 經常使用的有GET/PUT/POST/DELETE

4.1查詢數據

好比咱們查詢st_face這個索引,經過索引類型face_info(這裏的索引類型相似於mysql數據庫中建立的索引),搜索分片屬性爲time的字段,以下圖效果:

4.2插入數據

插入數據使用POST或者PUT方法,只是POST方法爲自動生成id,而PUT方法須要指明id,以下圖實例:

POST方法

PUT方法:

4.3修改數據

4.4刪除數據

刪除數據使用DELETE方法,實例以下:

注:

Head插件中編寫json發送請求比較複雜和不方便, 可使用postman或者python ElasticSearch模塊提供的API等工具進行請求的發送,來實現對ElasticSearch的數據和索引進行增刪改查。

五、Python ElasticSearch模塊

Python Elasticsearch模塊是Python的一個第三方模塊庫,須要手動安裝,若是已經安裝了pip工具,就能夠直接經過命令:pip install elasticsearch一鍵安裝。Elasticsearch API封裝並提供了可操做Elasticsearch的幾乎全部動做,包括經常使用的Elasticsearch數據的增刪改查和索引操做。
如下是一些參考文檔地址:

Elasticsearch官方API文檔地址:

 https://www.elastic.co/guide/en/elasticsearch/reference/current/search.html

Elasticsearch模塊的使用:

http://www.javashuo.com/article/p-tzribfbf-d.html

下面經過一個實例編寫腳本,實現鏈接Elasticsearch,並批量向Elasticsearch數據庫中的st_face索引中寫入數據,在PyCharm中編輯以下代碼:

執行完成後,在Elasticsearch中查看st_face索引中剛剛批量插入的數據,以下:

相關文章
相關標籤/搜索