Algolia 是一家专注于提供托管式搜索和实时数据查询服务的云服务平台,主要帮助网站、移动应用及技术文档快速集成高效、精准的搜索功能。其核心技术优势包括毫秒级响应速度、高度可定制的搜索算法、易用性强的API接口,以及对开源项目和非商业用途的免费支持。
Algolia 的服务支持多种语言支持 Ruby、Rails、Python、PHP、JS、Java、Android、Objective-C 等多种语言,具备关键字输入智能容错功能,并提供有搜索排名配置,并具有实时快速的特点(Algolia 在全球 12 个数据中心均有部署)。Algolia 还为移动设备提供了离线搜索引擎,其 C++ SDK 可以嵌入到应用服务器端,这样即便没有网络连接应用也能提供搜索功能。
DocSearch计划,自动化索引生成和搜索服务部署,显著提升文档用户体验;Algolia DocSearch 是Algolia提供的免费的自动化全文搜索服务,旨在帮助开发者为他们的文档网站提供高效、精确的搜索体验。它通过智能爬虫抓取和索引在线文档,定时爬取指定网站,自动构建搜索索引,并结合Algolia的高性能搜索技术,提供即时的、上下文相关的搜索结果。
对于开发者而言,不需要繁琐的配置,只需要申请Algolia DocSearch服务的免费计划后,用相关的 API 直接调用服务就行了。目前前端框架都有相对成熟的Algolia DocSearch API快速集成的第三方库,使用非常简单。对于使用者,只需要在网站检索框输入关键字,即可快速的搜索相应结果。
Algolia服务器会定期抓取我们指定的文档地址中的内容进行分析并建立索引,这样在网站搜索框中输入关键词后,前端会调用 Algolia DocSearch 的接口并显示搜索结果。这些请求、结果显示的相关逻辑都封装好了,我们要做的就是按要求插入代码、配置好网站样式以及搜索框。
Algolia DocSearch 的官方文档,默认情况下它通常一周爬取一次网站内容,用户也可自行触发爬取.Algolia DocSearch 提供的免费服务是需要申请的,当我们的网站满足下列条件时,Algolia 那边的工作人员才会让我们的申请通过:
Algolia 是一个完整的商业搜索服务平台,而 DocSearch 是其旗下专门为技术文档场景定制的自动化搜索解决方案。两者的核心区别如下:
| 对比项 | Algolia | DocSearch |
|---|---|---|
| 定位与功能范围 | 通用型搜索引擎服务平台,支持电商、APP、企业数据等多种场景。核心功能为: 1. 分布式架构实现毫秒级响应。 2. 智能排序、拼写纠错、同义词处理等算法。 3. 开发者可自由定制索引规则和搜索交互。 | Algolia 为技术文档/博客设计的“开箱即用”方案。核心功能为: 1. 自动爬取网站内容并构建索引。 2. 提供预设的前端搜索组件(搜索框+结果页)。 3. 仅适用于公开的技术文档类网站。 |
| 数据接入方式 | 1. 需手动上传数据(如通过API或SDK) 2. 使用官方爬虫工具 Algolia Crawler 自定义抓取逻辑。 | 1. 完全自动化,提交网站URL后,Algolia 自动定期爬取(默认每周一次),可自定义定时任务执行时间。 2. 无需手动配置数据管道,适合文档更新频繁的场景。 |
| 成本与适用性 | 1. 免费版限制 10,000 条记录。 2. 高阶功能(如个性化排序)需付费 | 1. 对技术文档完全免费,无记录数量限制。 2. 但需通过人工审核(网站需为公开技术内容)。 |
| 集成复杂度 | 需自主开发,自行配置。 1. 需要自己手动创建应用,认证爬取站点域名。 2. 需要自己手动创建索引名称,自动导入数据。 3. 需要自己编写爬虫代码。 4. 自己编写前端交互组件。 | 极简集成。 1. DocSearch免费计划申请通过后,系统自行创建索引名称,认证站点域名,编写爬虫脚本。 2. 通过CDN引入CSS/JS文件。 3. 添加预设的搜索框HTML标签即可实现页面检索框弹框效果。 |
| 搜索体验差异 | 需通过API参数和UI库手动实现同等效果。 | 1. 结果页自动高亮标题层级(h1 > h2 > h3)。 2. 针对文档结构优化相关性排序(如优先匹配章节标题)。 3. 内置响应式UI,适配移动端。 |
首先,你需要申请 Algolia 免费的 DocSearch计划资格。打开 Algolia DocSearch 官网,点击 “Apply” 按钮,在表单项中填写你的项目信息,包括文档站的 URL(需包含协议头 https://)、邮箱、是否开源等。

提交表单后,Algolia 团队会审核你的申请(工作日一般是当天或者隔天就可申请通过,最迟不超过一周)。如果符合条件,他们会发邮件通知你,切记你需要回复邮件,确认你是网站站长,并且能够修改代码。通过确认后,他们会为你开通免费的 DocSearch服务,Algolia DocSearch 会再发一封使用邮件,其中包含appId、apiKey 和 indexName,用于在网站生成框架中配置。若未回复,视为放弃请求。

免费的Algolia DocSearch计划申请通过后,我们也可以前往Algolia管理自己的后台数据,查询对应的key信息。Algolia DocSearch审核通过后,控制面板中会自动生成申请通过邮件返回的应用名称和应用id,默认索引名称,默认爬取程序。默认索引名称可以删除,系统审核通过时,已对申请域名进行了认证,认证后索引数据才能生效。默认爬取程序无法删除。
Application,切换申请通过的DocSearch应用。通过左侧search按钮查看应用索引信息,下方 Go To Crawler进入爬虫程序页面
点击左侧选项栏里的Search进入索引页面,查看对应的indexName 数据,如果Browse这里没有显示数据,那说明爬取的数据可能有问题,导致没有生成对应的Records,那我们就需要排查第三步爬虫程序是否有问题。

点击控制面板的 Go To Crawler按钮或者左下方的Data Source按钮都可以进入爬虫程序页面。

点击索引名称,进入爬虫配置页面


点击Editor进入爬虫程序页面

如果爬虫监控台显示成功爬取,也有Monitoring Success 的数据,但 Records 为 0,那大概是爬虫提取数据的逻辑有问题,查看上图代码,查看具体的爬虫逻辑,查看是否存在错误信息。
像pathsToMatch 这里是最容易出错的地方,比如: pathsToMatch 如果是https://anyfork.github.io/blog-docs/docs/**,但你的网址都是https://anyfork.github.io/blog-docs/**开头,那这里大概就是会提取错误,修改一下,然后点击右侧的数据进行测试。
一般情况下,基本都是爬虫程序爬取的域名或者路径不对导致爬虫失败,因此需要认真核对一下是否配置正确。
setting查看应用配置信息。
API Keys,查看应用的所有key信息,项目中集成会用到几个关键的key。
目前项目使用docSearch只需要apiKey,applicationId和indexName这3个key。
nuxt/algolia是专为 Nuxt.js 框架设计的模块,用于简化与 Algolia 搜索引擎的集成。它提供了快速、灵活的搜索功能集成方案,适用于电商网站、博客平台、文档站点等场景,其中提供了在Nuxt3项目中使用DocSearch的配置教程。大概使用流畅如下:
pnpm add @docsearch/js @docsearch/css
yarn add @docsearch/js @docsearch/css
npm install @docsearch/js @docsearch/css
将@nuxtjs/algolia安装到nuxt的模块中,并配置DocSearch申请成功后邮件返回的apikey,appId和indexName这3个key信息。
export default defineNuxtConfig({
modules:['@nuxtjs/algolia']
algolia: {
apiKey: 'apiKey',
applicationId: 'applicationId',
// DocSearch key is used to configure DocSearch extension.
docSearch: {
indexName: 'indexName',
}
}
})
将组件<AlgoliaDocSearch />放置在需要展示搜索的地方,页面上就会展示出搜索框,点击弹出一个模态框,输入关键字,即可全局进行文本搜索。
<template>
<AlgoliaDocSearch />
</template>
