为你的文档集成相关搜索栏
使用 Meilisearch 为内容密集的网站建立索引。涵盖安装 Meilisearch、配置文本抓取工具以及创建简单前端。
本教程将指导您为文档构建一个相关且强大的搜索栏 🚀
运行 Meilisearch 实例
首先,在 Meilisearch Cloud 上创建一个新的 Meilisearch 项目。您也可以在本地或其他云服务上安装并运行 Meilisearch。
在后续步骤中需要提供的 host URL 和 API key 对应此 Meilisearch 实例的凭证。
抓取您的内容
Meilisearch 团队提供并维护了一个抓取工具,可自动读取网站内容并将其存储到 Meilisearch 的索引中。
配置文件
爬虫工具需要一个配置文件来了解您想要抓取的内容。这是通过提供选择器(例如 html 标签)来实现的。
以下是一个基础配置文件的示例:
index_uid 字段是您 Meilisearch 实例中存储网站内容的索引标识符。如果索引不存在,爬虫工具将会创建一个新索引。
在这个示例中,docs-content 类是文本内容的主要容器。大多数情况下,这个标签是 <main> 或 <article> HTML 元素。
lvlX 选择器应该使用标准的标题标签如 h1、h2、h3 等。您也可以使用静态类。为这些元素设置唯一的 id 或 name 属性。
所有位于主要文档容器之外(例如侧边栏中)的可搜索 lvl 元素必须是 global 选择器。它们将被全局捕获并注入到从您的页面构建的每个文档中。
如果您使用 VuePress 来编写文档,可以查看我们在生产环境中使用的配置文件。在我们的案例中,主容器是 theme-default-content,标题和副标题的选择器是 h1、h2…
更多可选字段可供使用以满足您的需求。
运行爬虫工具
您可以使用 Docker 运行爬虫工具。按照第一步设置好本地 Meilisearch 实例后,运行以下命令:
如果不想使用 Docker,这里提供了其他运行爬虫工具的方式。
<absolute-path-to-your-config-file> 应该是您在上一步中定义的配置文件的绝对路径。
API 密钥需要具备向 Meilisearch 实例添加文档的权限。在生产环境中,我们建议提供 Default Admin API Key,因为它具有足够的权限来执行此类请求。
了解更多关于Meilisearch 安全性的内容。
我们建议在每次部署新文档时运行爬虫工具,正如我们对 Meilisearch 官方文档所做的。
集成搜索栏
如果您的文档不是 VuePress 应用,可以直接跳转到本节内容。
适用于 VuePress 文档站点
如果您使用 VuePress 构建文档站点,我们提供了 Vuepress 插件。该插件已在 Meilisearch 官方文档中投入生产使用。
在您的 VuePress 项目中:
在您的 config.js 文件中配置:
hostUrl 和 apiKey 字段是 Meilisearch 实例的凭据。按照本教程的说明,它们分别是 MEILISEARCH_URL 和 MASTER_KEY。
indexUid 是 Meilisearch 实例中存储网站内容的索引标识符,已在配置文件中定义。
这三个字段是必填项,但您还可以使用更多可选字段来自定义搜索栏。
由于配置文件是公开的,我们强烈建议在生产环境中使用仅能访问搜索端点的密钥,例如 Default Search API Key。
了解更多关于Meilisearch 安全机制的信息。
适用于各类文档
如果您没有使用 VuePress 来构建文档,我们提供了一个前端 SDK,可以将强大且相关的搜索栏集成到任何文档网站中。
Docxtemplater 搜索栏演示
hostUrl 和 apiKey 字段是 Meilisearch 实例的凭证。在本教程中,它们分别是 MEILISEARCH_URL 和 MASTER_KEY。
indexUid 是存储网站内容的 Meilisearch 实例中的索引标识符,已在配置文件中定义。
inputSelector 是 HTML 搜索输入标签的 id 属性。
在生产环境中,我们强烈建议提供 Default Search API Key,这足以执行搜索请求。
了解更多关于 Meilisearch 安全性的内容。
该库的默认行为非常适合文档搜索栏,但您可能需要一些自定义配置。
如需更具体的示例,可以参考这个基础 HTML 文件或这个更高级的 Vue 文件。
下一步
至此,您应该已经在网站上拥有了一个可用的搜索引擎,恭喜!🎉 如果您现在想要在生产环境中运行 Meilisearch,可以查看本教程!