在免费的 Slack 计划中保存并搜索您的 Slack 历史记录

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