iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 12
0
Elastic Stack on Cloud

Elastic 30天自我修行系列 第 12

上傳莎士比亞作品 + KQL(Kibana Query Language)#1

  • 分享至 

  • xImage
  •  

發現 elastic 公司有提供一些範例資料提供學習使用;例如下面這個連結就是莎士比亞的作品。

https://download.elastic.co/demos/kibana/gettingstarted/shakespeare_6.0.json

而 R 的 elastic 也很貼心的將 API 的使用簡化,只要把 json 的擋案路徑設定好就可以完成上傳。

library(elastic)

# Connect OK!

x <- connect(
  host = "111.asia-east1.gcp.elastic-cloud.com",
  path = "",
  user = "elastic",
  pwd = "111",
  port = 9243,
  transport_schema = "https"
)

# upload json file
# From a file already in newline delimited JSON format

shakespeare <-   "/mnt/c/Users/excel/Downloads/shakespeare_6.0.json" 
docs_bulk(x, shakespeare , index = "shakespeare" )


當然官網中也提供了 curl 的上傳手法,不過還得指定 'Content-Type: application/x-ndjson' ,我個人認為還是稍微麻煩了點。

而說到莎士比亞的作品,最為出名的台詞大概就是那句"To be or not to be",這句話到底是講的呢。
我們就透過 ElasticSearch 來找看看,並且同時看看,類似的句法結構的台詞出現的多不多。

在 API Console 中透過 GET

shakespeare/_search?q=text_entry:to be or not to be

https://ithelp.ithome.com.tw/upload/images/20200912/20130033scNqPBAZ7L.png

由此我們可以知道是由 HAMLET (哈姆雷特說出),而這種類似 not to be 的被動表達型式,大約出現了 127次。試想類似的文字尋找,在一般的關聯式資料庫,可能就沒有這麼方便囉

接下來讓我們 "Create index pattern" : shakespeare。
然後今天來試試看 Kibana 的 Discover,發現此處有提供一套名為 KQL(Kibana Query Language)的查詢語法.
KQL 還有提供進階的查詢語法(AND/OR/巢狀查詢),例如我可以查詢 HAMLET 使用 "to be" 句型的台語:

 text_entry: "to be" and  speaker: HAMLET 

相較於之前在 Elastic API Console 查詢得出的前10筆 JSON 樣本資料顯示,KQL 查詢後的就直接先回傳500筆資料提供檢視,而且輸出顯示的畫面更加直覺 https://ithelp.ithome.com.tw/upload/images/20200912/20130033diiAHBiDvX.png

近期我所使用的範例都缺乏了日期時間欄位資訊,接下來的日子中,我再介紹此類時間列系的範例。


上一篇
今晚,我想要來點互動圖表 Kibana#2)
下一篇
上傳 JSONL 範例檔案
系列文
Elastic 30天自我修行31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言