LabHub

ブログ

次世代検索エンジン 2026 — Meilisearch・Typesense・Elasticsearch・OpenSearch・Quickwit・Vespa 徹底比較(Elastic 後の風景)

한국어English日本語

プロローグ — Elasticsearch は今も巨人だが、風景は散らばった

2018 年、「検索エンジンは何にするか」の答えは事実上一つだった。Elasticsearch。ELK はログも Elasticsearch、サイト検索も Elasticsearch、推薦も(何とかして)Elasticsearch で回した。

2026 年に同じ問いを投げると、答えは少なくとも 5 方向に分かれる。

この記事は 2026 年 5 月時点で検索エンジンを率直に比較する。各エンジンの強み・弱み、そしてあらゆる所に入り込んだ hybrid search(フルテキスト + ベクトル + reranker)の現実、そして「いつ何を選ぶか」の意思決定フレームワークまで。

一行先取り結論:「フルテキスト vs ベクトル」の二分法はもう過去。2026 年の正解はほぼ常に hybrid。問題は誰が hybrid を一番滑らかにやってくれるか。


1 章 · 道具地図 — 七つ +α

まず道具を分類する。カテゴリが混ざらないように。

カテゴリエンジン一言
in-app/サイト検索(シンプル)Meilisearch・TypesenseRust/C++、軽量、セルフホスト寄り
汎用検索・分析Elasticsearch・OpenSearch巨人 + AWS フォーク
ログ・オブザーバビリティ検索Quickwit・Loki・ElasticsearchS3 ベースが新潮流
AI serving 検索Vespareal-time ranking・テンソル・ML が一級市民
SaaS サイト検索Algoliaホスト型のみ、非常に速い
超軽量Sonic自動補完用、Rust
検索・分析の融合Apache Doris・StarRocks・ClickHouseOLAP が検索を侵食
ベクトル DBPinecone・Weaviate・Qdrant・Milvus・LanceDB別節で扱う

ほとんどの人は一度に全部評価しない。シナリオを三つ — in-app 検索ログ検索RAG 検索 — に絞ると候補が自然に狭まる。


2 章 · Elasticsearch — 巨人は生きている

Elasticsearch は死んでいない。むしろ 2024〜2025 に二つの方法で反撃した。

2.1 ライセンス — SSPL/Elastic License v2 から AGPL/Elastic v3 へ

2024 年後半、Elastic は Elasticsearch と Kibana を AGPL v3(Elastic License v2 と並行)で再オープンソース化した。OpenSearch 陣営への明確なシグナルであり、OSS 寄りクラウド(Bonsai・Elastic Cloud・セルフホスト)に再び活気をもたらした。ただし AWS のマネージド Elasticsearch サービスが戻ってくる意味ではない — AWS は OpenSearch に全リソースを注いだ状態だ。

ライセンスの要点。

2.2 ESQL — SQL ライクな新クエリ言語

Elasticsearch 8.11+ で ESQL(Elasticsearch Query Language)が GA。Lucene のクエリ DSL を直接書く代わりに、パイプベースの SQL ライク構文で同じ仕事をする。

FROM logs-*
| WHERE @timestamp > NOW() - 1 hour AND http.status >= 500
| STATS count(*) BY service.name
| SORT count DESC
| LIMIT 10

ESQL の意味はシンプル。「ログ・メトリック領域で Elasticsearch が OLAP に近づいた」 — Apache Doris・ClickHouse のような分析エンジンと競合できる表面を持ったというサイン。ESQL は転置インデックスではなく統計・集計に最適化された経路を使う。

2.3 ベクトル検索・hybrid が一級市民

8.x 後半から dense vector フィールドと HNSW インデックス、BM25 + kNN の hybrid 検索が標準機能だ。learning_to_rankELSER(Elastic が学習した sparse 埋め込み)も提供され、別途ベクトル DB なしで RAG パイプラインの中心に置く価値のある選択肢になった。

2.4 Elasticsearch の強み・弱み


3 章 · OpenSearch — AWS フォークの政治学と技術学

2021 年の ES SSPL 化に反発して AWS がフォークした OpenSearch は、5 年経って「フォーク」ではなく独立プロジェクトだ。2026 年の現状。

OpenSearch を選ぶ理由はだいたい二つ。

  1. AWS に住んでいてマネージド検索を使う — Amazon OpenSearch Service が最も自然な選択。
  2. Elastic License v2 の SaaS 再販売制限を避ける必要がある — 自社サービスの一部として検索エンジンを露出するマネージド検索ベンダー。

ほとんどの in-app・ログシナリオで ES と OpenSearch の機能はほぼ同等。ただし ESQL のような ES の新機能が OpenSearch には別の形(PPL — Piped Processing Language)で入ってくるため、どちらかのクエリ言語にコードが書かれている場合、移行コストがある。


4 章 · Meilisearch — Rust が作ったシンプルさの美学

Meilisearch は in-app 検索に特化した Rust 製検索エンジンだ。2026 年 5 月時点で v1.13+ 系。一言で言うと 「Algolia 的体験をセルフホストで」

4.1 なぜ人気か

4.2 2026 年の新機能 — Vector・Hybrid

Meilisearch は v1.6 で dense vector 検索を導入し、2025 年に embeddings・rerankers・hybrid が安定化した。

// Meilisearch 1.x — hybrid 検索
const results = await client.index('products').search('blue runners', {
  hybrid: {
    embedder: 'openai',
    semanticRatio: 0.7,
  },
  limit: 20,
})

semanticRatio: 0.7 は「ベクトル 70%、BM25 30% の加重で混ぜる」。0 ならフルテキストのみ、1 ならベクトルのみ。

4.3 Meilisearch の強み・弱み

選ぶ場面 — 商品カタログ・ドキュメント検索・ブログ検索・小〜中規模の in-app 検索。Algolia をセルフホストで置き換えたいほぼ全てのケース。


5 章 · Typesense — C++ が作ったもう一つの in-app 強者

Typesense は C++ で書かれた検索エンジンだ。Meilisearch と同じシナリオを狙うが、思想が少し違う。

5.1 Meilisearch との違い

5.2 2026 年の新機能 — Conversational・Vector・Hybrid

Typesense は v0.25+ からベクトル検索・hybrid・自然言語検索を導入。「Conversational search」 — LLM と組み合わせて自然言語の質問に直接答えるエンドポイント — も v28.x で GA。

const result = await client.collections('products').documents().search({
  q: 'red running shoes under 100',
  query_by: 'name,description,embedding',
  vector_query: 'embedding:([], k: 50, alpha: 0.4)',
})

alpha: 0.4 は Meilisearch の semanticRatio と同じ概念。フルテキストとベクトルの加重。

5.3 Typesense の強み・弱み

選ぶ場面 — SaaS のマルチテナント in-app 検索最初から分散が必要な in-app 検索


6 章 · Quickwit — S3-native ログ検索と Datadog 買収

Quickwit は検索エンジン風景で最近の最大事件。Rust 製のログ検索特化エンジンで、オブジェクトストレージ(S3・GCS・Azure Blob)を一次ストレージとして使う点で ES と決定的に違う。

6.1 なぜ重要か — 「S3 にそのまま置くコスパが凄い」

ES でログを運用した人は知っている。時系列データを hot tier に置くと SSD が際限なく必要で、frozen tier・スナップショット・ILM 設定は運用負荷の半分を占める。

Quickwit のモデルは正反対。

6.2 2024 年 Datadog 買収 — その後

2024 年 10 月、Datadog が Quickwit を買収した。買収後 Quickwit OSS がどうなるかが市場の最大の関心事だったが、2025〜2026 にかけて答えは「維持される。ただしコア開発は Datadog 内部のログ・トレースシステムにより深く入る」。

6.3 Quickwit のデータモデル

ES と違う点二つ。

  1. append-only な時系列中心 — 更新は制限的。ログ・トレースに最適化。
  2. schema-less が一級市民 — JSON をそのまま受けてインデックス。動的フィールドマッピングが ES より滑らか。

クエリは Elasticsearch DSL に似た形もサポートし、OpenTelemetry・Jaeger・Grafana との統合が一級。

6.4 Quickwit の強み・弱み

選ぶ場面 — ログ・トレース・オブザーバビリティ検索S3 にコールドデータまで全部置きたい時


7 章 · Vespa — 本物の AI serving 検索

Vespa は興味深い位置にある。Yahoo! の社内検索・推薦インフラとして始まり、2017 年にオープンソース化、2023 年に Verizon Media から Vespa.ai としてスピンオフ。2026 年時点で v8.x。

Spotify・Wikipedia・Pinterest のような所の検索・推薦システムが Vespa で動く。何が特別か。

7.1 他の検索エンジンとの決定的違い

これが RAG・推薦・real-time AI serving に強い理由。

7.2 ColBERTv2 — Vespa が最も滑らかに扱う reranker

ColBERTv2 は dense retrieval と cross-encoder reranking の効率的な中間点。トークン毎の埋め込みで late interaction を計算するが、Vespa はこれを一級市民として扱う — インデックスに ColBERT テンソルを直接保存し、ranking 段階で効率的な MaxSim 計算をする。

7.3 Vespa の強み・弱み

選ぶ場面 — 推薦システムの中核RAG の本物の中核検索と ranking 両方が ML モデルで動く所


8 章 · Algolia・Sonic・Apache Doris・StarRocks — その他の風景

8.1 Algolia — SaaS サイト検索の依然 1 位

Algolia にはセルフホストオプションがない。SaaS のみ。それが強みでもあり弱みでもある。

選ぶ場面 — トラフィックが少なく素早くリリースする in-app 検索サイト検索・ブログ検索。トラフィック・レコード数が増えると Meilisearch・Typesense に移行するパターンが多い。

8.2 Sonic — 極端に軽い自動補完

Sonic は Rust 製の極端に軽い検索エンジン。「自動補完・suggest」に特化。SQLite 的なインデックスファイルでメモリ使用量がほぼゼロ。

選ぶ場面 — 検索がほぼ自動補完で、メイン検索は別ツールが処理する時。2026 年時点で Meilisearch・Typesense がほぼ全ての自動補完を上手く処理するため、Sonic の領域は小さくなった。

8.3 Apache Doris・StarRocks — OLAP が検索を侵食

Doris・StarRocks・ClickHouse のようなカラム型 OLAP が転置インデックス・テキスト検索をサポートし始めて、「分析データの中で検索も」という新シナリオが開けた。特にログ・イベントデータのように分析と検索が同じデータで起きる場合に魅力的。

選ぶ場面 — 分析が中心で検索は付加。メインのサイト検索をこれで回すのはまだ無理がある。


9 章 · Hybrid Search — 2026 年の標準

「フルテキスト検索 vs ベクトル DB」の二分法はもう過去。2026 年の検索は ほぼ常に hybrid。その構造を解きほぐす。

9.1 hybrid の三層

1. retrieval (一次検索)
   - BM25 (フルテキスト、字句マッチ)
   - Dense vector (意味ベース、embedding ANN)
   - 二つの結果を RRF か加重和で結合

2. reranking (二次並び替え)
   - cross-encoder または ColBERT 系モデル
   - 上位 50〜200 件のみ再並び替え
   - 高価だが品質に大きく寄与

3. business logic (三次並び替え)
   - 人気度・新規性・パーソナライゼーション・ビジネスルール

この三層をどう実装するかがエンジンごとに違う。

9.2 RRF (Reciprocal Rank Fusion) — hybrid 標準の結合

二つの ranked list(BM25 結果・ベクトル結果)をどう合わせるか。最も一般的な方法が RRF。

RRF_score(d) = sum( 1 / (k + rank_i(d)) )  for each ranker i

k は通常 60。シンプルだが非常に堅牢。ES・OpenSearch・Vespa・Meilisearch・Typesense 全てが RRF かその変種をサポート。

9.3 Reranker — Cohere Rerank・Voyage・ColBERT

reranking は通常 retrieval 結果の上位 50〜200 件にのみ適用する。それ以上はコストが爆発。

9.4 hybrid サポート比較表

エンジンBM25dense vectorRRF外部 reranker 統合ColBERT/late-interaction
Elasticsearchありあり (HNSW)あり自分で呼び出し限定的
OpenSearchありあり (k-NN)あり自分で呼び出し限定的
Vespaありあり (HNSW + 他)ありインデックス内蔵可能一級市民
MeilisearchありありsemanticRatioembedder 統合なし
Typesenseありありalpha自分で呼び出しなし
Quickwitあり限定的--なし
Weaviate限定的ありhybrid クエリモジュールなし
QdrantsparseありRRF外部限定的

10 章 · フルテキスト vs ベクトル DB vs 両方 — 意思決定フレームワーク

10.1 フルテキストだけで十分な場合

→ Meilisearch・Typesense・Quickwit・Elasticsearch・OpenSearch の中でシナリオに合う物。

10.2 ベクトルだけで十分な場合

ほぼない。純粋なベクトル検索は短いクエリ・完全一致・識別子検索に弱い。 キーワード検索が同時に可能な環境がほぼ常に良い。

例外 — 画像・音声・動画類似度検索のようにテキストインデックスがないケース。この時は Pinecone・Qdrant・Milvus・Weaviate・LanceDB のような純粋ベクトル DB が自然。

10.3 hybrid が正解の場合(ほとんど)

→ Vespa・Elasticsearch・OpenSearch・Meilisearch hybrid・Typesense hybrid の中でシナリオと運用負荷のバランスで。


11 章 · 能力マトリクス — 一目で見る比較

能力ElasticsearchOpenSearchMeilisearchTypesenseQuickwitVespaAlgolia
フルテキスト (BM25 系)非常に良い非常に良い良い良い良い良い非常に良い
ベクトル検索良い (HNSW)良い (k-NN)良い良い限定的非常に良い付加
hybrid 検索あり (RRF)あり (RRF)あり (ratio)あり (alpha)限定的非常に滑らかあり
Reranker 統合外部呼び出し外部呼び出しembedder外部呼び出し-インデックス内蔵一部
分散非常に良い非常に良い普通良い良い (S3)非常に良いSaaS のみ
ログ・時系列良い良い不向き不向き非常に良い不向き不向き
in-app/サイト検索良い良い非常に良い非常に良い不向き良い(過剰)非常に良い
RAG retrieval良い良い普通〜良い普通〜良い不向き非常に良い普通
運用複雑度非常に低非常に高SaaS のみ
コスト高い (hot tier)高い安い安い非常に安い (S3)高い大規模で急上昇
ライセンスAGPL+ELv2Apache 2.0MITGPL/SSPLApache 2.0Apache 2.0proprietary

12 章 · シナリオ別推奨 — in-app・ログ・RAG

3 シナリオを決定木で解く。

12.1 In-app 検索(サイト・商品・ドキュメント)

- トラフィック少なく速くリリース: Algolia
- セルフホスト、シンプル: Meilisearch
- セルフホスト、マルチテナント: Typesense
- ES/OS 既存、運用可能: Elasticsearch / OpenSearch
- 検索が ML で ranking される: Vespa (運用負荷を受容)

12.2 ログ・オブザーバビリティ

- コスト最優先、データ量大: Quickwit (セルフホスト)
- マネージド、AWS: Amazon OpenSearch Service
- マネージド、マルチクラウド: Elastic Cloud, Grafana Cloud Loki
- Datadog 既に利用中: Datadog (内部 Quickwit)

12.3 RAG・real-time AI serving

- 1段階 retrieval のみ: Meilisearch/Typesense hybrid + 外部 reranker
- 本格 ranking pipeline 必要: Vespa
- ES/OS 既存、運用可能: ES/OS dense_vector + reranker
- 画像・音声中心: Pinecone/Qdrant/Milvus/Weaviate
- Postgres が真実の源: pgvector + 外部 reranker

13 章 · 実例 — どこで何が使われているか

この分布から見えるパターン。


14 章 · 運用コスト・複雑度 — 本当のコストはどこにあるか

エンジン選択で最もよく無視される変数が運用コスト。ライセンス価格ではなく、人の時間 + インフラ + データ移動コストだ。

14.1 インフラコスト

おおよその一桁差。

14.2 運用時間コスト

14.3 移行コスト

ライセンスが高そうだからとエンジンを引き剥がす前に、移行 + 運用時間 + 学習コストを合計して見る。


エピローグ — 検索はフルテキストでもベクトルでもない、検索だ

2026 年 5 月の検索風景を一行で要約すると。

「Elasticsearch は依然巨人で、in-app とログが分離し、AI serving は Vespa が獲り、あらゆる所に hybrid が入った」

意思決定チェックリスト

アンチパターン

  1. 「Elasticsearch が全部やってくれる」 — 全シナリオを ES で — 運用コストがすぐ爆発。
  2. 「ベクトル DB 一つで hybrid もフルテキストも」 — キーワードマッチの精度が崩れる。
  3. 「Quickwit で in-app 検索」 — 更新が弱い、シナリオミスマッチ。
  4. 「Vespa で全検索」 — 運用複雑度が in-app 検索には圧倒的に過剰。
  5. 「Algolia で無限にスケール」 — レコード数が数千万超えればセルフホスト検討。
  6. 「OS == ES」と仮定 — 7.10 以降の API・機能差が蓄積。
  7. 「hybrid 使わなくても十分」 — 2026 年のユーザー期待値はそうではない。

次回予告

次の候補 — Vespa 最初の 90 日 — Spotify 風推薦システムのセルフホストガイドQuickwit セルフホスト — S3・Kubernetes 上にログ検索を作るMeilisearch + Cohere Rerank で 1 時間 RAG

「検索はデータベースではない。検索はユーザー体験だ。ツールはその先で選ばれる」

— 次世代検索エンジン 2026、終わり。


参考 / References

コメント

まだコメントはありません。

ログインするとコメントできます