在免費的 Slack 方案中儲存並搜尋您的 Slack 歷史記錄

最初發布於 Airbyte 網站
概述
Slack 免費方案僅儲存最新的 1 萬則訊息。對於社交 Slack 實例,升級到付費方案以保留這些訊息可能不切實際。同樣地,對於像 Airbyte 這樣的開源專案,我們透過公共 Slack 實例與社群互動,為每位 Slack 成員支付席位的成本太高。
然而,搜尋舊訊息可能真的很有幫助。失去這些歷史記錄感覺像是某種形式的記憶喪失。關於 Java 8 Streams 的笑話是什麼?這個貢獻者的問題聽起來很熟悉—我們以前是不是看過?但你就是想不起來!
本教學將向您展示如何免費使用 Airbyte 來儲存這些訊息(即使在 Slack 移除這些訊息的存取權限後)。它還將提供一種方便的方式來搜尋這些訊息。
具體來說,我們將把訊息從您的 Slack 實例匯出到名為 Meilisearch 的開源搜尋引擎中。我們將重點介紹如何從您的本地工作站執行此設定。我們將在最後提及如何設定此管道的更生產版本。
我們希望使這個過程容易上手,因此,雖然我們會連結到一些外部文件以供進一步探索,但我們將在此處提供您需要的所有指示,以使其啟動並運行。
設定 Meilisearch
首先,讓我們在我們的工作站上運行 Meilisearch。Meilisearch 有大量的 入門 文件。但是,在本教學中,我們將提供您使用 Docker 設定 Meilisearch 所需的所有指示。
docker run -it --rm -p 7700:7700 -v $(pwd)/data.ms:/data.ms getmeili/meilisearch
就是這樣!
Meilisearch 將資料儲存在
$(pwd)/data.ms
中,因此,如果您希望將其儲存在其他位置,只需調整此路徑即可。
如何將您的 Slack 訊息複製到 Meilisearch
設定 Airbyte
請確定您已安裝 Docker 和 Docker Compose。如果您尚未設定 Docker,請按照此處的指示在您的機器上設定它。然後,執行以下命令
git clone https://github.com/airbytehq/airbyte.git cd airbyte docker-compose up
如果您遇到任何問題,請隨時查看我們更詳盡的入門指南以獲得更多幫助。
看到 Airbyte 橫幅後,UI 即可在 https://127.0.0.1:8000/
上使用。設定好您的使用者偏好設定後,您將進入一個要求您設定來源的頁面。在下一步中,我們將說明如何進行設定。
設定 Airbyte 的 Slack 來源連接器
在 Airbyte UI 中,從下拉式選單中選擇 Slack。我們在 這裡提供了在 Airbyte 中設定 Slack 來源的逐步說明。這些說明將引導您完成此頁面上的表單。
依照這些指示完成後,您應該已在 Airbyte UI 中建立了一個 Slack 來源。目前,只需將您的 Slack 應用程式新增到單個公共頻道(您稍後可以將其新增到更多頻道)。只會複製該頻道中的訊息。
Airbyte 應用程式現在將提示您設定目的地。接下來,我們將逐步說明如何設定 Meilisearch。
設定 Airbyte 的 Meilisearch 目的地連接器
返回到 Airbyte UI。它應該仍然提示您設定目的地。從下拉式選單中選擇「Meilisearch」。對於主機欄位,請設定:https://127.0.0.1:7700
。api_key 可以保留空白。
設定複製
在下一頁中,系統會要求您選擇要複製的資料串流。我們建議取消勾選「檔案」和「遠端檔案」,因為您無法在這個搜尋引擎中輕鬆搜尋它們。
對於頻率,我們建議每 24 小時一次。
搜尋 Meilisearch
儲存連線後,Airbyte 應立即開始複製資料。完成後,您應該會看到以下內容
同步完成後,您可以透過向 Meilisearch 發出搜尋請求來檢查這一切是否正常運作。複製可能需要數分鐘,具體取決於您的 Slack 實例大小。
curl 'https://127.0.0.1:7700/indexes/messages/search' --data '{ "q": "<search-term>" }'
例如,我在我複製的訊息之一中有以下訊息:welcome to airbyte..
curl 'https://127.0.0.1:7700/indexes/messages/search' --data '{ "q": "welcome to" }' # => {"hits":[{"_ab_pk":"7ff9a858_6959_45e7_ad6b_16f9e0e91098","channel_id":"C01M2UUP87P","client_msg_id":"77022f01-3846-4b9d-a6d3-120a26b2c2ac","type":"message","text":"welcome to airbyte.","user":"U01AS8LGX41","ts":"2021-02-05T17:26:01.000000Z","team":"T01AB4DDR2N","blocks":[{"type":"rich_text"}],"file_ids":[],"thread_ts":"1612545961.000800"}],"offset":0,"limit":20,"nbHits":2,"exhaustiveNbHits":false,"processingTimeMs":21,"query":"test-72"}
透過 UI 搜尋
對您的 Slack 歷史記錄發出 curl 請求進行搜尋有點笨拙,因此我們修改了 Meilisearch 在 其文件中提供的範例 UI,以搜尋 Slack 結果。
將此 html 檔案下載(或複製並貼上)到您的工作站。然後,使用瀏覽器開啟它。您現在應該可以在搜尋列中輸入搜尋詞並立即獲得結果!
「生產化」儲存 Slack 歷史記錄
您可以在這裡找到有關如何在各種雲端平台上託管 Airbyte 的說明。
可以在這裡找到有關如何在雲端平台上託管 Meilisearch 的文件。
如果您想使用上述章節中提到的 UI,我們建議將其靜態託管在 S3、GCS 或同等服務上。