在 MinIO 上使用 MeiliSearch 掌握全文搜索
文本数据是一个庞大且不断增长的数据类别,每天都在生成、存储和分析。不同的应用程序以事件、日志和通知的形式生成文本数据。面对越来越多的物联网和机器生成的文本数据,企业一直在寻找更快、更准确的搜索工具。有许多搜索文本数据的应用程序,它们需要高性能的对象存储来大规模存储和搜索文本。提供快速的文本搜索对任何团队来说都是一项巨大的增值。
在这篇文章中,我们将学习如何利用 MinIO 和 MeiliSearch 来构建一个大规模的存储和搜索平台。首先,我们将设置 MeiliSearch,启用快照,然后使用 MinIO 服务器作为 MeiliSearch 快照的高吞吐量、可扩展的存储平台。我们将使用 MinIO Client (mc) 将这些快照存储到 MinIO,以便 MeiliSeach 可以从任何时间点恢复。
MeiliSearch是一个 RESTful 搜索 API 服务器。简单地说,MeiliSearch 允许用户上传任意文本数据、索引数据并允许对上传的数据集进行闪电般的快速搜索。
MinIO 非常适合作为快照的对象存储,因为它快速、可扩展且易于安装和管理。MinIO 为 100MB,轻巧高效,因此在本地安装 MinIO 以学习和开发新技术就像使用它构建自己的自助对象存储平台一样容易。
文本搜索平台通常会拍摄数据和索引的快照,MeiliSearch 也不例外。MinIO 支持移动、复制和版本控制快照。在这个演示中,我们将使用镜像定期将 MeiliSearch 快照移动到 MinIO。随着版本控制启用,MinIO将确保快照的多个版本存储得当,它甚至有可能倒退到旧的快照。
先决条件
在我们学习如何将 MeiliSearch 快照备份到 MinIO 之前,我们需要配置并运行 MinIO 和 MeiliSearch。
安装美丽搜
MeiliSearch 可作为主要操作系统的自包含二进制文件使用。下载并启动MeiliSearch:
# Install MeiliSearch curl -L https://install.meilisearch.com | sh # Launch MeiliSearch ./meilisearch --schedule-snapshot=true --snapshot-interval-sec 3600
这样,MeiliSearch 将在默认快照位置(即 MeiliSearch 根目录中的 snapshots 目录)中计划每小时生成一次快照。
安装 MinIO 和 MinIO 客户端
要将 MeiliSearch 快照备份到 MinIO 服务器,我们将使用 `mc mirror` 命令。你需要一个正在运行的 MinIO 服务器作为镜像目标。首先,设置一个 MinIO 服务器。在这篇博文中,我们将使用公开托管的 MinIO Play 服务器作为备份目标。
一旦您启动并运行 MinIO 服务器,下载并安装 MinIO 客户端 (mc)。
将快照备份到 MinIO
为了备份快照,我们将使用启用了锁定的 MinIO 版本化存储桶,以便可以根据需要将快照恢复到特定时间点。创建存储桶并启用版本控制:
mc mb --with-lock play/meilisearch-snap mc version enable play/meilisearch-snap
现在,启动一个mc mirror会话,每次在我们刚刚创建的 MinIO Server 存储桶中生成 MeiliSearch 快照时,该会话将继续复制:
mc mirror --watch /path/to/meilisearch/snapshots/ play/meilisearch-snap/
请注意,MeiliSearch 快照名为data.ms.snapshot. 这就是我们将在备份存储桶中关注的文件。
从快照恢复 MeiliSearch
如果您想从特定快照恢复 MeiliSearch,您可以使用以下命令从 MinIO 服务器下载该快照的版本:
mc ls play/meilisearch-snap --versions mc cp --vid 77decd94-ac3d-409f-8abb-934c7b157f75 play/meilisearch-snap/data.ms.snapshot ./
下载特定快照版本后,您可以使用
meilisearch --import-snapshot mySnapShots/data.ms.snapshot
这将从创建快照的时间点启动 MeiliSearch。
MeiliSearch 和 MinIO 用于快速可靠的文本搜索
瞧!超级简单,速度极快。
希望我们已经展示了使用 MinIO 和 MeiliSearch 将高度可扩展的对象存储和文本数据搜索平台配对是多么容易和高效。这种模式对读者来说应该很熟悉。它在很多方面与我们最近关于对象存储数据库的帖子相似。最大的收获是分解继续向上移动,应用程序将存储外包给 S3(在本例中为 MinIO)并专注于查询处理或搜索(计算)。将这些系统结合在一起,提供了一种构建同类最佳、可扩展的文本搜索平台的好方法。
从下载MinIO和MeileSearch 开始。如果您有任何疑问,请参阅MinIO 文档或在我们的Slack频道上提问。