为你的文档集成相关搜索栏
使用 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,可以查看本教程!