什么是 Algolia


algolia 是一个托管搜索引擎,提供全文,数字和多面搜索,能够从第一次击键中提供实时结果,它提供了一组工具,可简化制作完整搜索体验并将其集成到您的网站和应用程序中的过程。这些包括:

  • 支持多种不同语言的后端 API 客户端,用于索引、配置和管理数据

  • 用于构建 Web 和移动搜索体验的前端小部件

  • 与流行的框架和平台集成,进一步简化Algolia在现有项目中的集成

  • 一个安全的分布式搜索网络,可托管您的内容并快速将其提供给客户

  • 透明、可自定义的相关性算法

  • 一个经过大量优化的搜索引擎,从头开始构建,C++

  • 大量文档、实现指南和代码示例

  • 透明、可自定义的相关性算法

简单来说,Algolia 是一个提供云搜素服务的第三方平台,我们可以通过调用 Algolia 的API接口把我们自己站点的数据上传到 Algolia 中,实现我们自己站点的搜索功能。

注册 Algolia

进入官网地址用 Github 授权登录

新建索引

查看 Application IDSearch-Only API KeyAdmin API Key

安装依赖 && 写入配置

安装依赖 && 写入配置

1
npm install hexo-algoliasearch --save

然后修改博客配置文件 _config.yml,添加如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
algolia:
appId: "your applicationID"
apiKey: "your Search-Only API Key"
adminApiKey: "your Admin API Key"
chunkSize: 5000
indexName: "your indexName"
fields:
- content:strip:truncate,0,500
- excerpt:strip
- gallery
- permalink
- photos
- slug
- tags
- title

其中,appi apikey adminApiKey 填入在 Algolia 上查看 Application ID 、 Search-Only API Key 和 Admin API Key ,indexName 填入前面你创建的index名称

填写完成后,执行下面语句,把索引信息上传 Algolia

1
hexo algolia

看到如下信息,就表示上传成功

1
2
3
4
5
INFO  47 files generated in 503 ms
INFO Clearing index on Algolia...
INFO Index cleared.
INFO Indexing posts on Algolia...
INFO 8 posts indexed.

再把 _config.butterfly.ymlalgolia_search 设置改成

1
2
3
4
5
6
7
8
algolia_search:
enable: true
hits:
per_page: 10
labels:
input_placeholder: Search for Posts
hits_empty: "我们没有找到任何搜索结果: ${query}"
hits_stats: "找到${hits}条结果(用时${time} ms)"

前往博客根目录,依次执行如下命令

1
hexo clean && hexo generate && hexo server

重新编译运行,即可看到效果。