JekyllにAlgoliaで全文検索機能を実装する
本サイトに待望の全文検索機能を実装した.Algolia社のDocSearchの審査に通らなかったので,同社のFree hacker planを利用した.
Algolia
Algoliaは,リアルタイム検索をSaaSで提供するサービス群.今回は,DocSearchおよびFree hacker planの利用を検討した.
DocSearch
DocSearch申請用ページで登録したURLが審査に通ると,Algoliaのクローラが自動でインデックスファイルを構築し,検索用APIを公開してくれるという,ゆとりには嬉しいサービス.何を隠そうJekyllの検索システムもこれで実装されている.今回は残念ながら審査に通らなかった1ので,Free hacker planを利用することにした.
Free hacker plan
自力で作成したインデックスファイルをAlgoliaにアップロードし,検索用APIを利用するプラン.マスターデータは1万件まで登録でき,APIを月10万回まで利用できる.Algoliaを利用してサイト内検索機能を実装する - WEB EGGによると,上限をオーバーすると検索もコンテンツの追加もできなくなるみたい.月1万PV程度のブログでギリギリ足りない感じらしいので,本ウェブサイトなら余裕である2.
幸い,Jekyll向けのプラグインがあるため,私でも簡単に実装できた.以下に手順を示す.
手順
以下は基本的にAlgolia for Jekyll - AlgoliaおよびBlog search - Algolia for Jekyllに則っているが,ウェブサイトの一貫性を保つために一部のコードを修正している.
Algoliaのユーザ登録
Algoliaからサインアップする.以降の処理で,ダッシュボードのApplication ID
,Search-Only API Key
,およびAdmin API Key
が必要なのでメモしておく.
jekyll-alglia
の設定
Gemfile
に以下を追記し,$ bundle update
する.
_config.yml
にjekyll-algolia
の設定を追加する.
インデックスの作成とアップロード
シェルで以下を実行する.
ここで,Admin API Key
はローカルで保管する必要がある.間違ってGitHub等にアップしないように注意.以降は,検索窓の実装に入る.
_layouts/search.html
Blog search - Algolia for Jekyllのsearch.html
を参考にした.ただし,本ウェブサイトのベーステーマであるCentrariumと整合するよう,一部に手を加えた.
_includes/algolia.html
Blog search - Algolia for Jekyllのalgolia.html
を参考にした.
search.md
全文検索用のSearchページを作成するために,以下のsearch.md
ファイルを作成した.
感想
これで,本ウェブサイトに欲しかった機能はあらかた実装してしまった.結構書きたい(書かないと忘れてしまいそうな)ことが溜まってきたので,しばらくは統計・機械学習のノウハウや理論を書いていきたい.
参考
Subscribe via RSS