GitHubでトレンド入りしていたChrome拡張機能Falconの紹介記事です。
特徴としては Webサイトの中身まで検索対象とするところです。
この前見た○○の記事どこだっけか、みたいな探し方をする人にはとても良い拡張機能だと思います。
※執筆時点(2016/09/19)のバージョンはv0.1.4
です。
使い方
まずはインストールしましょう。
https://chrome.google.com/webstore/detail/falcon/mmifbbohghecjloeklpbinkjpbplfalb
インストールが終わったら
適当にWebサイトを巡回しましょう。
ブラウザのオムニボックス(アドレスバー)に
**「f 検索したい文字列」**を入れます。
以下はReact
で検索した例です。
「URL 日付 タイトル」の形式で履歴から検索&表示されます。
オプション
デフォルトは現在から2週間以内に閲覧したWebサイトを対象に検索するようです。
オプションで期間の指定や除外などもいけるみたいです。
詳細は公式サイトを参照してください。
技術解説
どうやってインデックス貼ってるのかと思ってソースを見ていたのですがとてもシンプルでした。
Webサイトを開いたときの処理
- Webサイトを開いた日時をキーにする
- サイト中の検索対象とする単語を抽出して、スペース区切りで1つの文字列にする
- 上記の文字列をキーに対する値とする
- chrome.storageに上記のキーバリューを保存する
※銀行系のサイトはブラックリストとして定義してあって一応除外しているようです。
https://github.com/lengstrom/falcon/blob/master/extension/js/blacklist2.js
検索するときの処理
- 2週間分(デフォルト検索の場合)のキーを取得する
- キーに対する値から
indexOf
で検索語の存在をチェックする
単純に文字列を含んでいるかをチェックしているだけでした。
データが少ない場合は、十分なのかもしれません。
その他
オムニボックスの検索は拡張機能に限定されているわけではありません。
OpenSearchで標準化されています。
Qiitaは対応されているのでChromeの検索エンジンの設定画面を開くと自動で登録されていることが確認できます。
qiita.comなんて打つのは面倒なので「q」とかで登録しなおすのがおすすめです。
またQiitaの上のAlcは英単語を検索可能なWebサイトです。
OpenSearchに対応していないサイトですが筆者が自分で登録したものです。
URLでアクセス出来るサイトなら自由に登録できるので検索の効率化に繋がります。
検索機能のあるWebサービスを作ったらOpenSearch対応すると良いです。
最低でもqパラメータなどを用意して検索できるようにしましょう。
あとがき
検索用のキーバリューを保存しているchrome.storage
は暗号化されているわけではないです。
※ユーザーのExtensionの保存ディレクトリを見れば普通に見えます。
漏れたら本当にまずい情報を扱う人はインストールしない方がいいです。
そういう方は拡張機能自体使ってないと思いますが念のため。