Meilisearchとは?Rust製の超高速OSS全文検索エンジンを徹底解説【2026年版】
Meilisearchは、Rustで書かれたオープンソースの全文検索エンジンです。自前サーバーに無料で導入でき、タイプミスを許容するあいまい検索や日本語の形態素解析にも標準で対応します。この記事では、Meilisearchの仕組みと特徴、Elasticsearchなど他エンジンとの違い、料金プラン、Dockerでの導入とREST APIの操作までを2026年時点の情報でまとめます。導入を検討する際の判断材料として使ってください。
目次
- 1 まとめ:Meilisearchを一言でいうと
- 2 Meilisearchとは|Rust製・MITライセンスのOSS全文検索エンジン
- 3 Meilisearchの主な特徴|タイポ耐性・ファセット検索・RESTful API
- 4 Meilisearchの日本語対応|形態素解析(Lindera)と最新版での設定
- 5 Meilisearch・Elasticsearch・Typesense・Algoliaの比較
- 6 Meilisearchの料金プラン|セルフホスト無料とMeilisearch Cloud【2026年】
- 7 Meilisearchのインストールとセットアップ|Docker・各OS対応
- 8 Meilisearch REST APIの基本操作|データ登録と検索
- 9 Meilisearchを採用すべきでない場面
- 10 よくある質問
- 11 関連記事
まとめ:Meilisearchを一言でいうと
MeilisearchはAlgoliaの使い勝手をオープンソースで再現したような検索エンジンで、「設定が少なく、すぐ動き、検索が速い」のが最大の価値です。Rust製でメモリ効率が高く、小〜中規模のサイト内検索やECの商品検索、ドキュメント検索に向きます。料金はセルフホストなら完全無料(MITライセンス)、運用を任せたいならMeilisearch Cloudが月額30ドルから使えます。日本語はv1.10.2以降であれば標準のDockerイメージで形態素解析が効き、検索時に locales を指定するだけで精度を上げられます。一方で、数十億件規模の集計分析や複雑なクエリDSLが必要ならElasticsearchのほうが適します。以下で各論点を順に掘り下げます。
Meilisearchとは|Rust製・MITライセンスのOSS全文検索エンジン
Meilisearchは2018年に登場した全文検索エンジンで、開発元はフランスのMeili社です。設計思想はSaaS検索サービスのAlgoliaに着想を得ており、Algoliaが公開していたアルゴリズムやデータ構造を参考に、オープンソースとして自前で実装し直したという経緯があります。Algoliaと違って自由に自己ホストでき、ソースを改変できる点が支持され、GitHubのスター数は2026年時点で約58,000に達しています(最新の数値は公式リポジトリで確認できます)。
基本概要と他の検索エンジンの中での位置づけ
全文検索エンジンは、Elasticsearchのような大規模・高機能だが運用が重いものと、Meilisearchのように軽量で導入が速いものに大きく分かれます。Meilisearchは後者の代表格で、「複雑な設定なしに、まず動く検索を最短で用意したい」というニーズに応える製品です。ライセンスはMITで、商用プロダクトへの組み込みや再配布も制限なく行えます。検索アルゴリズムの基礎を学びたい場合は、ランキングで使われるBM25の特徴と検索アルゴリズムとしての優位性もあわせて確認すると、各エンジンの違いを理解しやすくなります。
Rust実装とLMDBによる高速・軽量アーキテクチャ
Meilisearchが速い理由は、言語選択とストレージ設計にあります。本体はRustで実装されており、ガベージコレクションがなくメモリ管理が予測可能なため、低レイテンシを保ちやすい構造です。ストレージにはメモリマップドDBのLMDBを採用し、メモリ上の高速アクセスとディスク永続化を両立しています。全インデックスをRAMに載せるTypesense(C++製)とは異なり、メモリに収まりきらない規模でも動かせるのが実務上の利点です。Rust製ツールの設計に興味があれば、同じくRust製のAxum(Rust製Webフレームワーク)の解説も参考になります。
Meilisearchの主な特徴|タイポ耐性・ファセット検索・RESTful API
Meilisearchの機能で実務に効くのは、次の点です。重要度の高い順に挙げます。
- タイポ耐性(typo tolerance):「meilisearch」を「milisearch」と打っても結果が返る。ユーザーの打ち間違いをそのまま取りこぼさないため、サイト内検索の取りこぼし削減に直結します。
- ミリ秒単位の応答:1文字入力するたびに検索するインスタントサーチ(as-you-type)を前提に最適化されており、体感の速さがそのまま離脱率に効きます。
- ファセット検索・フィルタ:カテゴリや価格帯などの絞り込みUIを数行の設定で構築できます。
- RESTful API中心の設計:操作はすべてHTTP APIで完結し、公式SDK(JavaScript、Python、PHP、Goなど)も揃っています。
- ハイブリッド検索:キーワード検索とベクトル検索を組み合わせた検索にも対応し、セマンティック検索の用途にも広がっています。意味ベースの検索との違いはベクトル検索とセマンティック検索の違いの比較で整理できます。
機能は豊富ですが、Meilisearchの設計思想は「デフォルトのまま良い検索結果が出る」ことに置かれています。細かなランキングルールの作り込みより、まず標準設定で動かして必要な箇所だけ調整する使い方が向いています。
Meilisearchの日本語対応|形態素解析(Lindera)と最新版での設定
日本語検索の可否は、Meilisearch選定で最初に確認すべき点です。結論として、Meilisearchは日本語に標準対応しており、2022年以降は日本語の分かち書き(形態素解析)が組み込まれています。古い記事では「日本語専用のprototypeイメージをカスタムビルドで使う」と書かれていることがありますが、現行バージョンではこの前提は古くなっています。
日本語が標準対応になった経緯(Lindera/Charabia)
Meilisearchの言語処理は、トークナイザライブラリのCharabiaが担当します。Charabiaが文章の言語・文字種を自動判定し、言語ごとに最適な処理を選びます。日本語の分かち書きには形態素解析器のLinderaが使われ、v0.27.0(2022年5月)で正式に採用されました。公式が「中国語・日本語・ヘブライ語・ラテン文字を最適化サポート」と明記しているとおり、日本語は対応言語として扱われています。
最新版での日本語設定(locales: jpn・v1.10.2以降)
v1.10.2以降であれば、日本語専用イメージを使わなくても標準のDockerイメージで日本語検索が動きます。精度を確実に出すには、検索リクエストやインデックス設定で対象言語を明示します。具体的には検索ボディに "locales": ["jpn"] を指定する方法が推奨されています。下記は日本語を明示して検索する例です。
curl -X POST 'http://localhost:7700/indexes/articles/search' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer aSampleMasterKey' \
--data-binary '{ "q": "全文検索", "locales": ["jpn"] }'
日本語のOSS全文検索という観点では、データベース単体で全文検索を行うPostgreSQLのGINインデックスも選択肢になります。検索対象が小〜中規模で導入の速さを優先するならMeilisearch、既存のRDBで完結させたいならPostgreSQL、という切り分けが現実的です。
Meilisearch・Elasticsearch・Typesense・Algoliaの比較
Meilisearchを検討するときに必ず比較対象になるのが、Elasticsearch・Typesense・Algoliaです。実装言語・ライセンス・日本語対応・向き不向きを整理します。
| 項目 | Meilisearch | Elasticsearch | Typesense | Algolia |
|---|---|---|---|---|
| 実装言語 | Rust | Java | C++ | 非公開(SaaS) |
| ライセンス | MIT | AGPL/Elastic等 | GPLv3 | プロプライエタリ |
| 提供形態 | 自己ホスト/Cloud | 自己ホスト/Cloud | 自己ホスト/Cloud | SaaSのみ |
| 日本語(CJK) | 標準対応 | プラグインで対応 | 限定的 | 対応 |
| 導入の手軽さ | 高い | 低い | 高い | 高い |
| 大規模分析 | 不向き | 得意 | 中 | 中 |
Elasticsearchは集計・ログ分析・複雑なクエリDSLに強い反面、運用負荷が高く、軽い全文検索には過剰です。Typesenseは速いものの、ライセンスがGPLv3で日本語などCJKの分かち書きが弱点になります。Algoliaは完成度が高いSaaSですが従量課金でコストが読みにくく、データを外部に預ける前提です。Meilisearchは「MITで自由・日本語標準対応・導入が速い」のバランスが取れており、自社サイトやCMS、社内ツールの検索に第一候補として向きます。
Meilisearchの料金プラン|セルフホスト無料とMeilisearch Cloud【2026年】
Meilisearchはオープンソースのため、自分でサーバーを用意して動かす分には完全無料です。運用やスケーリングを任せたい場合は、公式のマネージドサービスMeilisearch Cloudを使います。2026年時点の主なプランは次のとおりです。
| 区分 | 月額の目安 | 主な上限の目安 | 想定用途 |
|---|---|---|---|
| セルフホスト | 無料(MIT) | 制限なし | 自前運用・検証 |
| Cloud(小規模) | 月額30ドル前後〜 | 検索5万/ドキュメント10万 | 個人・小規模 |
| Cloud(上位) | 規模に応じ増額 | 大容量・高検索数 | チーム・本番 |
| Enterprise | 個別見積 | カスタム | 大規模・要件特化 |
上限を超えた分は従量課金になります(単価は公式の料金ページで確認してください)。Cloudには14日間の無料トライアルがあるため、自己ホストとの運用コスト比較をしてから決めるとよいでしょう。プラン名・正確な金額・無料枠は改定されることがあるため、契約前に必ず公式の料金ページで最新情報を確認してください。
Meilisearchのインストールとセットアップ|Docker・各OS対応
Meilisearchの導入方法は複数ありますが、最も手早いのはDockerです。WindowsでもLinux・macOSでも同じ手順で動かせます。
Dockerでの起動(推奨)
開発用に試すなら、developmentモードで起動します。マスターキーは16バイト以上の文字列が必要です。-v でデータディレクトリをマウントすると、コンテナを作り直してもインデックスが残ります。
docker run -it --rm \
-p 7700:7700 \
-e MEILI_ENV='development' \
-e MEILI_MASTER_KEY='aSampleMasterKey123456' \
-v $(pwd)/meili_data:/meili_data \
getmeili/meilisearch:latest
本番運用では :latest ではなく、公式リリースページで最新の安定版を確認したうえで getmeili/meilisearch:vX.Y.Z のようにバージョンを固定するのが安全です。起動後は http://localhost:7700 にアクセスすると、developmentモードでのみ使える簡易GUIのsearch previewが開きます。インデックスの中身やヒット具合をブラウザで確認できるため、最初の動作チェックに便利です。本番ではproductionモードに切り替え、search previewは無効化されます。
各OSのバイナリと動作確認
Dockerを使わない場合は、公式が配布するWindows/Linux/macOS向けのビルド済みバイナリをダウンロードして直接実行できます。起動できたかどうかは、ヘルスチェック用のエンドポイントで確認します。curl http://localhost:7700/health が {"status":"available"} を返せば正常に稼働しています。
Meilisearch REST APIの基本操作|データ登録と検索
Meilisearchの操作はすべてHTTP API経由です。データの単位は「ドキュメント」、その集合が「インデックス」です。ここではcurlでの基本操作を示します。
インデックス作成とドキュメント登録
インデックスはドキュメント登録時に自動作成されます。JSONファイル(movies.json)を primaryKey を指定して投入する例です。データ形式はJSON・NDJSON・CSVに対応します。
curl -X POST 'http://localhost:7700/indexes/movies/documents?primaryKey=id' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer aSampleMasterKey123456' \
--data-binary @movies.json
検索・フィルタ・ソートの実行
検索は search エンドポイントにクエリを投げます。filter で絞り込み、sort で並べ替えができます(事前にフィルタ可能属性・ソート可能属性の設定が必要です)。
curl -X POST 'http://localhost:7700/indexes/movies/search' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer aSampleMasterKey123456' \
--data-binary '{ "q": "batman", "limit": 5 }'
応答には検索結果に加え、処理にかかったミリ秒(processingTimeMs)が含まれます。インスタントサーチを実装する場合は、この値を見ながらインデックス設定やデータ量を調整していきます。
Meilisearchを採用すべきでない場面
Meilisearchは万能ではありません。次のような要件では、無理に使わず別のエンジンを選ぶべきです。
第一に、数十億件規模のログ集計や時系列分析、複雑な集約クエリが主目的のケースです。これはElasticsearchの土俵で、Meilisearchの軽量設計はかえって不利になります。第二に、検索ランキングを細部までクエリDSLで制御したい場合です。Meilisearchは「デフォルトで良い結果」を優先する設計のため、緻密なスコアリング制御を求めると窮屈に感じます。第三に、配布物をGPLで縛りたくないのにTypesenseを検討している場合は、ライセンスの違い(MIT対GPLv3)を必ず確認してください。逆にいえば、サイト内検索・商品検索・ドキュメント検索といった用途で「速く・手軽に・日本語で」動かしたいなら、Meilisearchは最有力候補になります。
よくある質問
Meilisearchの料金はいくらですか?
自分でサーバーを用意して動かすセルフホストは、MITライセンスのため完全無料です。運用を任せられるMeilisearch Cloudは月額30ドル前後の小規模プランから始められ、規模が大きくなると上位プランやEnterprise(個別見積もり)に移行します。Cloudには14日間の無料トライアルがあります。プラン名や正確な金額は改定されることがあるため、最新情報は公式の料金ページで確認してください。
Meilisearchとは何ですか?
Rustで書かれたオープンソースの全文検索エンジンです。タイプミスを許容するあいまい検索、ファセット絞り込み、日本語の形態素解析に標準対応し、REST APIで操作します。Algoliaの使い勝手をオープンソースで再現したような位置づけで、サイト内検索やECの商品検索に向きます。
MeilisearchとElasticsearchの違いは何ですか?
Elasticsearchは大規模なログ分析や複雑な集計に強い反面、運用負荷が高く設定も複雑です。Meilisearchは軽量で導入が速く、デフォルトで質の良い全文検索が得られる点が違いです。シンプルなサイト内検索ならMeilisearch、分析基盤も兼ねるならElasticsearchが適します。
Meilisearchは日本語検索に対応していますか?
対応しています。形態素解析器のLinderaがv0.27.0(2022年5月)で採用され、現在はトークナイザのCharabiaが日本語を自動処理します。v1.10.2以降なら標準イメージで日本語検索が動き、検索時に "locales": ["jpn"] を指定すると精度を高められます。
Meilisearchは商用利用できますか?
できます。本体はMITライセンスで提供されており、商用プロダクトへの組み込み・改変・再配布に制限はありません。自己ホストであれば追加費用も発生しません。マネージド運用が必要な場合のみMeilisearch Cloudの料金がかかります。