Elastic Workplace Search Quick Start 用三分鐘的時間架設工作區搜尋引擎

Lin Yen-Cheng on 2020-09-08 5 min. read

這篇文章會示範如何使用 Elastic Workplace Search (工作區檢索),工作區檢索讓我們能夠匯入並整合第三方服務的資料到搜尋引擎中,像是 Google Drive、Dropbox 等等,使用 Elastic Cloud 服務可以在幾分鐘內完成所有相關設定與資料匯入。

Workplace Search 簡介

為什麼需要工作區 (Workplace) 檢索

  • 整合的搜尋介面: 檔案散落在各大服務中,不一定會記得哪份文件放在哪裡
    • 跨部門檔案共享,檔案不一定是你建立的,相關文件往往很難找?
  • 優秀的分類篩選檢索,能更快找到某檔名的 pdf 的檔案

解決的痛點:

  • 開箱即用
  • 搜尋效能棒
  • 找文件不再大海撈針
  • 提供 Custom API Source 匯入相關內容
  • 可依群組調整權限與結果
    • 提供不同群組的結果權重調整

使用方式:

  • 新增資料源,這次使用 Dropbox,按照相關文件設定即可,其他資訊源大多也都類似以下步驟
  • 設定完成後就可以到 Search Application 中試用 (左側選單中最下面的放大鏡)

Connect 後可以看到檢索的內容 Summary
SourceOverview

Search Application 介面
WorkplaceSearchDropbox

Custom API Source

這部分比較特別,因為不是第三方所以不需要經過 OAuth,建立 Custom API Source 會得到 key 跟 token,接著就可以透過打 API 的方式新增資料。

建立 Custom API Source 介面
CustomAPISource

Curl 的範例如下,我們只需要把 URL 換成 Elastic Cloud,將 [KEY][AUTH_TOKEN] 換成我們剛剛得到的值,就可以將資料匯入。

curl -X POST http://localhost:3002/api/ws/v1/sources/[KEY]/documents/bulk_create \
-H "Authorization: Bearer [AUTH_TOKEN]" \
-H "Content-Type: application/json" \
-d '[
  {
    "_allow_permissions": ["permission1"],
    "_deny_permissions": [],
    "id" : 1234,
    "title" : "The Meaning of Time",
    "body" : "Not much. It is a made up thing.",
    "url" : "https://example.com/meaning/of/time",
    "created_at": "2019-06-01T12:00:00+00:00",
    "type": "list"
  },
  {
    "_allow_permissions": [],
    "_deny_permissions": ["permission2"],
    "id" : 1235,
    "title" : "The Meaning of Sleep",
    "body" : "Rest, recharge, and connect to the Ether.",
    "url" : "https://example.com/meaning/of/sleep",
    "created_at": "2019-06-01T12:00:00+00:00",
    "type": "list"
  },
  {
    "_allow_permissions": ["permission1"],
    "_deny_permissions": ["permission2"],
    "id" : 1236,
    "title" : "The Meaning of Life",
    "body" : "Be excellent to each other.",
    "url" : "https://example.com/meaning/of/life",
    "created_at": "2019-06-01T12:00:00+00:00",
    "type": "list"
  }
]'

當然也可以寫程式或透過 GUI 像是 RestEasy 打資料進去
AddDataToCustomAPI

Workplace Search 設定

設定資料來源後 Workplace Search 也提供了好幾種的設定,可以調整的部分如下:

  • Group: 可以建立資料分類群組
    • SourcePrioritization: 針對群組檢索的結果進行權重配置
  • Role Mappings: 角色的分配

Group,舉例來說可以分成工程師、PM、行銷三種群組

資料群組分類
ManageGroup

SourcePrioritization,每個人想要看到的內容可能優先權不太一樣。

  • 工程師 => 規格書優先 (Dropbox + Github)
  • PM、行銷 => 企畫書優先 (Google Drive)

檢索的結果進行權重配置
SourcePrioritization

Role Mappings: 分完群組後就可以進行角色配置,將角色對應到剛剛的群組

角色配置
RoleMappings


喜歡這篇文章,請幫忙拍拍手喔 🤣

share