Elasticsearch 學習筆記——2.es 的簡單命令操做

1. 導入數據

首先,咱們須要一些數據來支持咱們的操做,這裏我採用的是使用 filebeat 來採集數據到 es ,filebeat 也是 elastic 系列的產品,專門用來收集日誌文件,使用十分的簡單,在官網(下載地址)下載安裝包解壓,而後修改一下配置文件 filebeat.yml,具體的修改以下:數據庫

圖片描述

將 enabled 修改成 true,表示啓用導入配置,而後在路徑 paths 那裏配置日誌文件的地址。json

圖片描述

而後修改輸出設置,將數據輸出到 es 中,這裏須要配置 elasticsearch 的地址,我這裏是 192.168.66.135:9201,你配置成本身在 es 的配置文件中設置的 ip 和 port 就好了。app

啓動 filebeat 的命令:./filebeat -e -c filebeat.yml -d "publish" ,這裏須要確保 es 也是啓動的狀態,而後 filebeat 會鏈接到 es,將數據輸出。curl

完成後,使用命令 curl -X GET "192.168.66.135:9201/_cat/indices?v" 查看建立的 index 狀況:elasticsearch

圖片描述

2. 簡單的命令操做

在 elasticsearch 中,數據是以文檔的形式存放的,這也是它能支持全文本搜索的緣由,有三個比較關鍵的概念須要理解一下,首先是 index,這個至關於關係型數據庫中的一個數據庫。還有 Type ,表示數據的分類,相似於數據庫中的一個 table,es 的數據是以 json 格式表示的,每一條數據叫作 document。url

只不過根據規劃,es 6.x 版只容許每一個 Index 包含一個 Type,7.x 版將會完全移除 Type。spa

有了數據以後,接下來介紹一些查詢數據的經常使用命令:rest

1. 數據 日誌

1.插入數據:code

curl -X PUT "192.168.66.135:9200/megacorp/employee/1" -H 'Content-Type: application/json' -d'
{
    "first_name" : "John",
    "last_name" :  "Smith",
    "age" :        25,
    "about" :      "I love to go rock climbing",
    "interests": [ "sports", "music" ]
}
'

上面的命令,在 index 爲 megacorp,而且 Type 爲 employee 下面建立了一條數據,id 是 1,若是不指定 id 的話,es 會自動生成。

注意:若是 es 中沒有命令中的 index ,它會自動建立,因此,插入數據的時候,須要注意 index 名稱的正確性。

2.更新數據,仍是使用上面的命令,從新 PUT 便可。

3.刪除數據,使用 DELETE 命令,例如刪除上面插入的數據:curl -X DELETE "192.168.66.135:9200/megacorp/employee/1"

2. 索引

4.查看 es 中全部的 index 狀況:curl -X GET "192.168.66.128:9200/_cat/indices?v"

5.刪除 index :curl -X DELETE '192.168.66.135:9200/megacorp' ,刪除名爲 megacorp 的 index。

3. 搜索

6.查看 es 中的全部數據:http://192.168.66.128:9200/_search ,這條命令還能夠加上一些其餘的條件,例如:

  • 查看 megacorp 索引下的全部數據:http://192.168.66.128:9200/megacorp/_search
  • 查看 megacorp1, megacorp2 兩個 索引下的全部數據:http://192.168.66.128:9200/megacorp1,megacorp2/_search
  • 查看 megacorp 索引下的 employee 類型的數據:http://192.168.66.128:9200/megacorp/employee/_search
  • 在全部的索引中搜索 user1 和 user2 類型的數據:http://192.168.66.128:9200/_all/user1,user2/_search

7.簡單搜索:例如要查找 source 下面 message 這一列的數據中,包含 了某個字符串(這裏以 connect 爲例)的全部記錄:http://192.168.66.135:9201/filebeat-6.5.4-2019.04.06/_search?q=message:connect

8.全文搜索,可實現上面這種包含某個字符串的搜索,搜索的文本以下:

curl -X GET "192.168.66.135:9200/megacor/search" -H 'Content-Type: application/json' -d'
{
    "query" : {
        "match" : {
            "message" : "connect"
        }
    }
}
'

9.搜索分頁:

  • 從搜索的結果中選取前 50 條記錄:http://192.168.66.128:9200/megacorp/_search?size=50
  • 從第 3 頁中選取 10 條記錄:http://192.168.66.128:9200/megacorp/_search?size=10&from=3

OK,今天就暫時介紹這麼多了,後面再繼續寫。

相關文章
相關標籤/搜索