這篇文章會示範如何使用 Elastic Workplace Search (工作區檢索),工作區檢索讓我們能夠匯入並整合第三方服務的資料到搜尋引擎中,像是 Google Drive、Dropbox 等等,使用 Elastic Cloud 服務可以在幾分鐘內完成所有相關設定與資料匯入。
為什麼需要工作區 (Workplace) 檢索
解決的痛點:
使用方式:
Connect 後可以看到檢索的內容 Summary
Search Application 介面
這部分比較特別,因為不是第三方所以不需要經過 OAuth,建立 Custom API Source 會得到 key 跟 token,接著就可以透過打 API 的方式新增資料。
建立 Custom API Source 介面
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 打資料進去
設定資料來源後 Workplace Search 也提供了好幾種的設定,可以調整的部分如下:
Group,舉例來說可以分成工程師、PM、行銷三種群組
資料群組分類
SourcePrioritization,每個人想要看到的內容可能優先權不太一樣。
檢索的結果進行權重配置
Role Mappings: 分完群組後就可以進行角色配置,將角色對應到剛剛的群組
角色配置