iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 9
1
Elastic Stack on Cloud

Elastic 30天自我修行系列 第 9

上傳 list 資料到 Elastic Cloud

對於一般人來說,Elastic Search最迷人的應該就是 NoSQL 的特性了吧。
不像一般傳統資料庫,只能依照事先定義好的 Schema 上傳資料。
可以直接將 R 的 list 資料上傳。如果對於 list 不熟的朋友,其實可以想成 JSON 格式,基本上也是類似 key : Value 這種型式,可以很靈活的進行資料的儲存。

在下面簡單的例子中,以上傳2筆資料做為示例。
第1筆資料是屬於 Tom,他的興趣有 Cook、Beer.
第2筆資料是屬於 小明,他的興趣有 "漫畫" , "電影","閱讀","音樂",同時也有居住區域與手機號碼資訊。

library("elastic")


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

list_data <- list( 
  list(name="Tom",  hobby = list("Cook" , "Beer")   ) ,
  list(name="小明", hobby = list("漫畫" , "電影","閱讀","音樂"), address="台北市大安區", 
       mobile ="0912546781")
)

docs_bulk(x , list_data , "list_data")

如果不使用 list 這種彈性的資料結構,以一般資料庫的表現形式會如下所示:
會發現有許多資訊是重覆被紀錄,當然可以再藉由一些資料正規化的方式進行處理。
但在實務中,你的確很難去要求使用者的興趣只能是單選,只能限制在幾個以下,所以依據不同的情境使用不同的資料庫就顯得特別重要。

https://ithelp.ithome.com.tw/upload/images/20200909/201300337fNcvMD6iC.png

同樣的,在此處我們試著找看看,興趣是 "漫畫"的有那些人。
利用昨天的 POST 進行中文字的查詢,ElasticSearch 很快地就將答案揭露,的確"小明"也在其中!

https://ithelp.ithome.com.tw/upload/images/20200909/20130033iiWf73pBPb.png


上一篇
使用 POST 蒐尋中文字
下一篇
今晚,我想要來點企鵝的資料視覺化 ( Kibana#1)
系列文
Elastic 30天自我修行31

尚未有邦友留言

立即登入留言