Strapi v4 使用指南
学习如何在 Strapi v4 中使用 Meilisearch。
本教程将展示如何将 Meilisearch 与 Strapi 集成,创建一个基于搜索的网页应用。首先,您将使用 Strapi 的快速入门指南创建一个餐厅集合,然后通过 Meilisearch 搜索该集合。
前提条件
- Node.js: 活跃 LTS 或维护中的 LTS 版本,当前要求 Node.js >=18.0.0 <=20.x.x
- npm >=6.0.0 (随 Node.js 安装)
- 运行中的 Meilisearch 实例 (v >= 1.x)。如需帮助,可参考 安装章节。
使用 Strapi 创建后端
项目设置
创建一个名为 my-app
的目录,用于存放应用的 backend 和 frontend 部分。在 my-app
内使用 Strapi 生成后端 API:
该命令会在名为 back
的新目录中创建 Strapi 应用,并打开管理仪表盘。创建账户以访问该仪表盘。
创建账户后,您将被重定向至 Strapi 的管理仪表盘。这里将用于配置您的后端 API。
构建和管理您的内容
下一步是创建一个新的集合类型(collection type)。集合就像是您内容的蓝图——在本例中,它将是一个餐厅集合。稍后您还将创建一个名为”Category”的集合来组织您的餐厅。
请按照以下步骤操作:完成Strapi快速入门指南中的”Part B: 使用Content-type Builder构建数据结构”以及”Part D: 使用Content Manager向Strapi Cloud项目添加内容”的第2至5步。这些步骤包括:
- 创建集合类型
- 创建新条目
- 设置角色和权限
- 发布内容
扩展你的数据库
完成 Strapi 快速入门指南的步骤后,在 内容管理器 > 集合类型
下应该会出现两个新的集合:Restaurant(餐厅)和 Category(分类)。点击 Restaurant
可以看到当前只有一条记录。通过点击仪表板右上角的 + 创建新条目
按钮来添加更多记录。
逐一添加以下三家餐厅。对于每家餐厅,你需要先点击 保存
,然后点击 发布
。
- 名称:
The Butter Biscotte
- 描述:
关于黄油的一切,与健康无关。
接着在页面右下角添加 French food
(法式料理)分类。
-
名称:
The Slimy Snail
-
描述:
美食由大蒜和黄油构成。
-
分类:
French food
-
名称:
The Smell of Blue
-
描述:
蓝纹奶酪没有过期,这就是它的食用方式。配一点黄油和满满的快乐。
-
分类:
French food
现在你的 Strapi 后端已经准备就绪。Strapi 会自动为你的餐厅集合生成 REST API。请查阅 Strapi 文档了解所有可用的 API端点。
接下来,我们将连接 Strapi 和 Meilisearch 并开始搜索。
连接 Strapi 和 Meilisearch
要为 Strapi 添加 Meilisearch 插件,首先需要退出 Strapi 应用。前往运行 Strapi 的终端窗口,按下 Ctrl+C
终止进程。
接下来,在 back
目录中安装插件。
安装完成后,由于配置会更方便,建议在重新以开发模式启动前先重建 Strapi 应用。
此时,你的 Strapi 应用应该会再次运行在默认地址:http://localhost:1337/admin。在浏览器中打开它,你会看到一个管理员登录页面。输入你创建账户时使用的凭据。
连接成功后,你应该能在屏幕左侧看到新的 meilisearch
插件。
在 meilisearch
插件页面的设置选项卡中添加你的 Meilisearch 凭据。
现在是将 Strapi 集合添加到 Meilisearch 的时候了。在 meilisearch
插件页面的 Collections
选项卡中,你应该能看到 restaurant
和 category
内容类型。
点击 restaurant
旁边的复选框,该内容类型会自动被索引到 Meilisearch 中。
当你在 Collections
选项卡中点击 restaurant
的复选框时,会出现 “Hooked” 字样。这意味着每次你在餐厅内容类型中添加、更新或删除条目时,Meilisearch 都会自动更新。
索引完成后,你的餐厅数据就存储在 Meilisearch 中了。访问 搜索预览,通过搜索 “butter” 来确认一切工作正常。
你的 Strapi 条目会原样发送到 Meilisearch。你可以在发送前修改数据,例如移除某个字段。查看 strapi-plugin-meilisearch 页面 获取所有自定义选项。
下一步
本教程向您展示了如何将 Strapi 集合添加到 Meilisearch。
在大多数实际场景中,您通常会构建一个自定义搜索界面,并使用 Meilisearch 的 API 获取结果。要了解如何快速构建自己的前端界面,请查看前端集成页面指南。