超高速に動作するオープンソースでセルフホスト可能・日本語もOKな検索エンジン「Meilisearch」が開発から3年の時を経てついに最初の安定版がリリースされたので使ってみた

逐次検索やタイプミス耐性、ファセット検索、ジオサーチ、マルチテナンシーなどの機能を備えた高性能検索エンジン「Meilisearch」が2023年2月に初の安定版であるバージョン1.0をリリースしたとのことなので、早速ローカルで動作させて日本語の検索性能を確かめてみました。
Meilisearch 1.0: the next stage in search
https://blog.meilisearch.com/v1-enterprise-ready-stable/
公式サイトには英語のデモが用意されており、簡単に使い勝手を確かめることができます。試しに「mario」と入力を始めたところ、逐次検索が有効なため途中の状態でも結果が返ってきています。

「mario」と入力すると36件の結果がヒットしました。検索にかかった時間は4ミリ秒と驚異の速度。

デロイトとGoogleによる調査結果によると、ページの表示速度がわずか0.1秒向上するだけで小売サイトの購入率が8.4%上昇し……

旅行サイトの場合では申し込み率が10.1%上昇したとのこと。このように、ウェブの世界では速度が非常に大きな意味を持っています。

Meilisearchは速度追求を念頭にゼロから設計されているため、爆速で検索結果を返せるというわけです。検索が爆速なのは英語に限った話ではなく、Meilisearchは全ての言語に対応しているほか、日本語、中国語、ヘブライ語、タイ語、韓国語について特別な最適化を実施しており、さまざまな言語で爆速検索が可能とのこと。
Meilisearchのその他の特徴は以下の通り。
・タイプミス耐性
入力を多少間違った場合でも、ユーザーの期待通りの結果が出ます。
・ファセット検索
特定のタグのついたアイテムのみを検索対象にするなど、あらかじめ用意された検索条件をユーザーが選択して絞り込んでいく検索が可能です。
・ジオサーチ
ユーザーの現在位置の情報に応じて検索結果をフィルターしたり並び替えたりすることができます。
・マルチテナンシー
ユーザーごとに閲覧可能な情報が異なる場合でも、検索中のユーザーがアクセス可能な情報だけを検索対象にする設定が可能です。
◆実際に使ってみた
デモ版で十分にその速度や応答性は体感できましたが、セルフホストで日本語データを検索する場合でもMeilisearchが実力を発揮できるのかを試してみます。今回はWSL2を利用して動作を試す予定です。WSL2のインストールについては、Microsoftが以下にまとめています。
WSL のインストール | Microsoft Learn
https://learn.microsoft.com/ja-jp/windows/wsl/install
Meilisearchのクイックスタートガイドを確認すると、下記のコマンド一発でインストールできる模様。
curl -L https://install.meilisearch.com | sh
コマンド入力からインストール完了まで4秒でした。すでに爆速です。

そのまま、「./meilisearch」とコマンドを入力するとサーバーが起動します。ダッシュボードのアドレスが表示されるのでコピーして……

ブラウザに貼り付けます。「Select an index」をクリックしてみましたが、まだ何のデータも追加していないので「no index found」と表示されています。

今回は日本語データとして2023年春開始の新作アニメ一覧より各アニメのタイトルを抽出してきました。データを保存する際にプライマリーキーの設定が必要なので、「id」を追加してJSON形式にまとめて保存します。

ドキュメントの指示に従ってcurlコマンドでデータをmeilisearchに送信します。
curl \
-X POST 'http://localhost:7700/indexes/anime/documents?primaryKey=id' \
-H 'Content-Type: application/json' \
--data-binary @anime.json
すると「Select an index」表示だった場所が自動で「anime」に切り替わり、下部に先ほど保存したデータが出現しました。

検索時間0ミリ秒をたたき出すなど、パフォーマンスは良好です。

なおタイプミスには強くても誤変換には弱い模様で、ひらがなカタカナの違いや漢字の変換ミスでヒットしなくなってしまいました。

・関連記事
YouTube動画を保存して検索可能な個人的アーカイブをセルフホストで構築できる「Tube Archivist」 - GIGAZINE
無料で簡単に通知の送受信ができつつオープンソースでセルフホストも可能な「ntfy」を使ってみた - GIGAZINE
誰かが自分のサイト全体をコピーして丸パクリのクローンサイトを作った場合、どうやって対抗すれば良いのか? - GIGAZINE
Mastodonの創始者オイゲン・ロチコ氏インタビュー、Twitterからのユーザー流出の中でMastodonはいかに成長を遂げているのか? - GIGAZINE
GitLabの「1年放置された無料アカウントのプロジェクトを削除する計画」がすっぱ抜かれて炎上し即中止へ - GIGAZINE
・関連コンテンツ
in レビュー, ソフトウェア, ウェブアプリ, Posted by log1d_ts
You can read the machine translated English article Open source that operates at super high ….