kouno.log

    で移動 · Enter で開く

    サイト内検索機能を追加しました

    kouno.log にサイト内検索を追加しました。ヘッダーの「検索」ボタン、または ⌘K(Windows / Linux は Ctrl+K)で開きます。

    メモ・ニュース・外部記事を横断して探せます。これまでも /api/search はありましたが、そちらはタイトルと概要しか見ていませんでした。今回はメモとニュースの本文まで検索対象になっています。

    日本語の検索について

    日本語をどう区切るかは、以前 Blume で計測した結果をそのまま持ち込みました。

    漢字・ひらがな・カタカナの連なりを、辞書で単語に分けるのではなく文字2つずつの重なり窓(bigram)に切っています。辞書で分けると「法」「系」のような1文字の語がトークンとして残り、それが大量のページに刺さって候補がまったく絞れなくなるためです。そのうえで、切り出した窓をすべて含むページだけを結果に出しています。

    どの方式がどれくらい効くのかを実際に測った数字は、Blume の日本語検索、バージョン別の計測記録に置いてあります。

    完全一致が0件だったときだけ、部分一致の候補を上位5件に絞って出すようにしました。ここを絞らないと、存在しない語で検索したときに何十件も横並びで返ってきてしまうためです。

    実装について

    索引はブラウザ側で組んでいます。検索用のデータを取りに行くのは初めて ⌘K を押したときだけなので、普通にページを見ているぶんには読み込みが増えません。

    物理キーボードがない端末では、押しようのない ⌘K の表示は出さないようにしてあります。