为您的文档集成一个相关的搜索栏
使用 Meilisearch 为文本密集型网站编制内容索引。涵盖安装 Meilisearch、配置文本抓取器以及创建简单前端。
本教程将指导您为文档构建一个相关且强大的搜索栏 🚀
运行 Meilisearch 实例
首先,在 Meilisearch Cloud 上创建一个新的 Meilisearch 项目。您也可以在本地或其他云服务中安装和运行 Meilisearch。
您将在后续步骤中提供的主机 URL 和 API 密钥对应于此 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,可以查看本教程!