iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 8
1
Elastic Stack on Cloud

Elastic 30天自我修行系列 第 8

使用 POST 蒐尋中文字

昨天我們知道了 Windows 系統在上傳中文資料時,可能會發生一些問題,所以建議大家使用 Linux 與 Mac 進行作業。

今天再實際使用 WSL2 進行 R 的安裝,主要可以參考以下2篇。

(1) https://www.digitalocean.com/community/tutorials/how-to-install-r-on-ubuntu-18-04-quickstart
(2) https://zoomadmin.com/HowToInstall/UbuntuPackage/libcurl4-openssl-dev

如果不參考(1),則直接安裝的 R 版號會比較舊;使用(1)的教學,就可以安裝最新版號為 4 的R。另外由於 curl/elastic 套件會使用到 libcurl4-openssl-dev ,所以需要再進行(2)的安裝。

好啦 我們丟一些容易有問題的中文上去吧,我們這次的目標是,這一次的資料中,"功"有幾筆呢?


x <- connect(

  host = "abc123.asia-east1.gcp.elastic-cloud.com",
  path = "",
  user = "elastic",
  pwd = "abc123",
  port = 9243,
  transport_schema = "https"
)

for (i in 1:200) {
  zh3 <- data.frame(my_value = sample(c("許", "功", "蓋"), 200,
  replace = TRUE, prob = c(1, 3, 5)),
                    stringsAsFactors = FALSE)
}

docs_bulk(x, zh3, "zh_test")

先來看解答:答案是64筆,在 API Console 中使用如下的語法

{
  "query": {
    "multi_match": {
      "query": "功",
      "fields": [
        "my_value"
      ]
    }
  }
}

蒐尋後的結果:
https://ithelp.ithome.com.tw/upload/images/20200908/20130033vkvmA1D7PN.png

此處無法使用過去 GET 語法來進行蒐尋,使用 POST 的好處是會用 JSON 方式將中文整個包起來,不會有錯誤發生

https://ithelp.ithome.com.tw/upload/images/20200908/20130033ATOaIlzfMT.png


上一篇
透過API上傳中文時的注意事項
下一篇
上傳 list 資料到 Elastic Cloud
系列文
Elastic 30天自我修行31

尚未有邦友留言

立即登入留言