AI 驱动的混合搜索正在进行封闭测试。 加入候补名单 以获取早期访问权限!

前往主页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 就可以在 https://127.0.0.1:8000/ 上使用了。设置好用户偏好后,您将被带到一个要求您设置源的页面。在下一步中,我们将介绍如何执行此操作。

设置 Airbyte 的 Slack 源连接器

在 Airbyte UI 中,从下拉列表中选择 Slack。我们在 Airbyte 中提供了设置 Slack 源的分步说明此处。这些将引导您完成此页面上的表单填写。

按照这些说明操作完成后,您应该已经在 Airbyte UI 中创建了一个 Slack 源。现在,只需将您的 Slack 应用添加到单个公共频道(稍后您可以将其添加到更多频道)。只有来自该频道的消息将被复制。

Airbyte 应用现在将提示您设置目标。接下来,我们将介绍如何设置 Meilisearch。

设置 Airbyte 的 Meilisearch 目标连接器

返回 Airbyte UI。它应该仍然提示您设置目标。从下拉列表中选择“Meilisearch”。对于 host 字段,请设置:https://127.0.0.1:7700。可以将 api_key 留空。

设置复制

在下一页中,系统将要求您选择要复制的数据流。我们建议取消选中“files”和“remote files”,因为您实际上无法在此搜索引擎中轻松搜索它们。

对于频率,我们建议每 24 小时一次。

搜索 Meilisearch

保存连接后,Airbyte 应立即开始复制数据。完成后,您应该看到以下内容

同步完成后,您可以通过向 Meilisearch 发出搜索请求来检查这一切是否正常工作。复制可能需要几分钟,具体取决于您的 Slack 实例的大小。

curl 'https://127.0.0.1:7700/indexes/messages/search' --data '{ "q": "<search-term>" }'

例如,我在我复制的消息之一中有以下消息:欢迎来到 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 或同等产品上。

How to add AI-powered search to a React app

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

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

Carolina Ferreira
Carolina Ferreira2024 年 9 月 24 日
Build your Next.js Shopify storefront with Blazity

使用 Blazity 构建您的 Next.js Shopify 店面

学习使用 Next.js 和 Blazity 商业启动器构建 Shopify 店面。

Laurent Cazanove
Laurent Cazanove2024 年 8 月 19 日
Meilisearch 1.8

Meilisearch 1.8

Meilisearch 1.8 带来了负关键词搜索、搜索稳健性和 AI 搜索的改进,包括新的嵌入器。

Carolina Ferreira
Carolina Ferreira2024 年 5 月 7 日