为Hexo增加algolia搜索功能

algolia是文字搜索引擎,能更智能的搜索文章,下面记录下开启algolia遇到的坑

注册algolia

前往官网注册algolia,并新建一个INDEX,然后打开API Keys页面,里面的信息一会儿要用到。

安装algolia

  1. 在Hexo工程根目录下执行下面的语句。

    1
    npm install hexo-algolia --save
  2. 在Hexo根目录的_config.yml中加入algolia的配置,注意改成前面API Keys页面相应配置。

    1
    2
    3
    4
    5
    6
    algolia:
    applicationID: 'your applicationID'
    apiKey: 'your apiKey'
    adminApiKey: 'your adminApiKey'
    indexName: 'your indexName'
    chunkSize: 5000
  3. 上传数据到algolia

    1
    2
    export HEXO_ALGOLIA_INDEXING_KEY=your apiKey
    hexo algolia

    注意这里需要先设置环境变量,否则会报

    1
    2
    ERROR [Algolia] Please set an `HEXO_ALGOLIA_INDEXING_KEY` environment variable to enable content indexing.
    ERROR >> Read https://npmjs.com/hexo-algolia#api-key for more informations.
  4. 看到如下信息,证明成功了,可以去algolia网站上查看,索引已经上传成功了。

    1
    2
    3
    4
    5
    INFO  [Algolia] Testing HEXO_ALGOLIA_INDEXING_KEY permissions.
    INFO Start processing
    INFO [Algolia] Identified 5 pages and posts to index.
    INFO [Algolia] Indexing chunk 1 of 1 (50 items each)
    INFO [Algolia] Indexing done.

到Hexo开启aligolia

我使用的Next主题,开启只需要一步,到主题目录下的_config.yml,修改为开启。

1
2
algolia_search:
enable: true

如果你没有使用Travis,到这里就结束了。

设置Travis,发布文章时自动上传索引

1
2
3
script:
- hexo generate && rsync -az -vv --delete -e 'ssh -p 22' public/ [email protected]:/data/www/liu.app/public
- ssh -p 22 [email protected] "cd /data/www/liu.app/ && git pull && export HEXO_ALGOLIA_INDEXING_KEY=8eb4e875f1e326cdd84b678cedxxxxxx && hexo algolia && exit"

注意需要先git pull 再hexo algolia,否则source里的文件不是最新的。

千万不要给我打赏!千万不要给我打赏!千万不要给我打赏!