這篇文章會示範如何使用 Elastic Workplace Search (工作區檢索),工作區檢索讓我們能夠匯入並整合第三方服務的資料到搜尋引擎中,像是 Google Drive、Dropbox 等等,使用 Elastic Cloud 服務可以在幾分鐘內完成所有相關設定與資料匯入。
Workplace Search 簡介
為什麼需要工作區 (Workplace) 檢索
- 整合的搜尋介面: 檔案散落在各大服務中,不一定會記得哪份文件放在哪裡
- 跨部門檔案共享,檔案不一定是你建立的,相關文件往往很難找?
- 優秀的分類篩選檢索,能更快找到某檔名的 pdf 的檔案
解決的痛點:
- 開箱即用
- 搜尋效能棒
- 找文件不再大海撈針
- 提供 Custom API Source 匯入相關內容
- 可依群組調整權限與結果
- 提供不同群組的結果權重調整
Workplace Search
使用方式:
- 新增資料源,這次使用 Dropbox,按照相關文件設定即可,其他資訊源大多也都類似以下步驟
- 建立一個 OAuth 2 APP https://www.dropbox.com/developers/apps
- 先選 Lagency 的 API 並照著輸入相關資料
- 回到 Workplace Search 按 connect
- 設定完成後就可以到 Search Application 中試用 (左側選單中最下面的放大鏡)
Connect 後可以看到檢索的內容 Summary
Search Application 介面
Custom API Source
這部分比較特別,因為不是第三方所以不需要經過 OAuth,建立 Custom API Source 會得到 key 跟 token,接著就可以透過打 API 的方式新增資料。
建立 Custom API Source 介面
Curl 的範例如下,我們只需要把 URL 換成 Elastic Cloud,將 [KEY]
及 [AUTH_TOKEN]
換成我們剛剛得到的值,就可以將資料匯入。
1 | curl -X POST http://localhost:3002/api/ws/v1/sources/[KEY]/documents/bulk_create \ |
當然也可以寫程式或透過 GUI 像是 RestEasy 打資料進去
Workplace Search 設定
設定資料來源後 Workplace Search 也提供了好幾種的設定,可以調整的部分如下:
- Group: 可以建立資料分類群組
- SourcePrioritization: 針對群組檢索的結果進行權重配置
- Role Mappings: 角色的分配
Group,舉例來說可以分成工程師、PM、行銷三種群組
資料群組分類
SourcePrioritization,每個人想要看到的內容可能優先權不太一樣。
- 工程師 => 規格書優先 (Dropbox + Github)
- PM、行銷 => 企畫書優先 (Google Drive)
檢索的結果進行權重配置
Role Mappings: 分完群組後就可以進行角色配置,將角色對應到剛剛的群組
角色配置
喜歡這篇文章,請幫忙拍拍手喔 🤣