回到主页Meilisearch 的标志
返回文章
2021 年 2 月 24 日

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

Charles Giardina
Charles GiardinaMeilisearch 团队
Save and search through your Slack history on a free Slack plan

原文发布于 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 或同等平台上。

Meilisearch indexes embeddings 7x faster with binary quantization

Meilisearch 通过二进制量化将嵌入索引速度提高了 7 倍

通过使用向量存储 Arroy 实现二进制量化,在保持搜索相关性和效率的同时,显着减少了大型嵌入的磁盘空间使用和索引时间。

Tamo
Tamo2024 年 11 月 29 日
How to add AI-powered search to a React app

如何将 AI 驱动的搜索添加到 React 应用

使用 Meilisearch 的 AI 驱动搜索构建一个 React 电影搜索和推荐应用。

Carolina Ferreira
Carolina Ferreira2024 年 9 月 24 日
Meilisearch is too slow

Meilisearch 太慢了

在这篇博文中,我们探讨了 Meilisearch 文档索引器所需的增强功能。我们将讨论当前的索引引擎、其缺点以及优化性能的新技术。

Clément Renault
Clément Renault2024 年 8 月 20 日