在免费版 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 即可在 http://localhost:8000/
运行。设置用户偏好后,您将被带到一个要求设置源的页面。在下一步中,我们将介绍如何执行此操作。
设置 Airbyte 的 Slack 源连接器
在 Airbyte UI 中,从下拉列表中选择 Slack。我们提供了设置 Airbyte 中 Slack 源的分步说明。这些说明将引导您完成此页面上的表单。
根据这些说明,您应该已经在 Airbyte UI 中创建了一个 Slack 源。目前,只需将您的 Slack 应用添加到单个公共频道(您稍后可以将其添加到更多频道)。只有该频道中的消息才会被复制。
Airbyte 应用现在将提示您设置一个目标。接下来,我们将介绍如何设置 Meilisearch。
设置 Airbyte 的 Meilisearch 目标连接器
回到 Airbyte UI。它应该仍然提示您设置一个目标。从下拉列表中选择“Meilisearch”。对于主机字段,设置为:http://localhost:7700
。api_key 可以留空。
设置复制
在下一页,您将被要求选择要复制哪些数据流。我们建议取消选中“文件”和“远程文件”,因为您在此搜索引擎中无法轻松搜索它们。
对于频率,我们建议每 24 小时一次。
搜索 Meilisearch
连接保存后,Airbyte 应该立即开始复制数据。完成后,您应该看到以下内容
同步完成后,您可以通过向 Meilisearch 发出搜索请求来检查一切是否正常。复制可能需要几分钟,具体取决于您的 Slack 实例的大小。
curl 'http://localhost:7700/indexes/messages/search' --data '{ "q": "<search-term>" }'
例如,我复制的一条消息中包含以下内容:welcome to airbyte..
curl 'http://localhost: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 搜索
使用 curl 请求搜索您的 Slack 历史记录有些笨拙,因此我们修改了 Meilisearch 在其文档中提供的示例 UI,以搜索 Slack 结果。
将此html 文件下载(或复制粘贴)到您的工作站。然后,使用浏览器打开它。现在,您应该能够在搜索栏中输入搜索词并立即获得结果!
将 Slack 历史记录保存“生产化”
您可以在此处找到有关如何在各种云平台上托管 Airbyte 的说明。
有关如何在云平台上托管 Meilisearch 的文档可在此处找到。
如果您想使用上面部分中提到的 UI,我们建议将其静态托管在 S3、GCS 或同等平台上。