필사 모드: サイト & ドキュメント検索 2026 — Algolia / Meilisearch / Typesense / Pagefind / Orama / Markprompt / kapa.ai 徹底比較
日本語プロローグ — 検索ボックスの裏に潜む 4 つの世界
2026 年でも、静的サイト / ドキュメント / SaaS 画面を開けば右上に小さな虫眼鏡アイコンがある。押すとモーダルが開き、入力すると結果が出る。ユーザは「全部同じ」と思っている。だが開発者にとってその箱の裏には **完全に異なる 4 つの陣営** がある。
1. **マネージド SaaS** — Algolia、Algolia DocSearch、(旧)Sajari が合流した Algolia NeuralSearch。サインアップして API キーを差し込めば完了。お金がかかり、データはクラウドに置かれる。
2. **セルフホスト検索エンジン** — Meilisearch、Typesense、Elastic、OpenSearch。自前で立てて、インデックスを作り、運用する。コストは低く、コントロールは強く、運用負担も大きい。
3. **静的 / インブラウザ** — Pagefind、Orama、Lunr.js、Fuse.js、MiniSearch、FlexSearch。バックエンドそのものが無いか、ビルド時にインデックスを焼いて静的に配る。
4. **AI ドキュメント検索(質問 → 回答)** — Markprompt、kapa.ai、Inkeep、Sourcegraph Cody、AnswerOverflow。検索ではなく RAG チャットボットが「検索」のフリをしているカテゴリ。
この記事は 2026 年 5 月時点の 4 陣営の地図を描く。各ツールの位置、料金モデル、インデックス / クエリ API の形、そして「うちのサイトには何を使えばいいか」への回答。埋め込み / キーワード / ハイブリッド検索の違いも触れ、日韓市場の検索 SDK も 1 章割いて扱う。
1. 2026 年のサイト検索地図 — 4 陣営
同じ「サイト検索」でも責任分担はまったく違う。
| 陣営 | 代表ツール | インデックスの場所 | クエリ実行 | 運用負担 | コストモデル |
| --- | --- | --- | --- | --- | --- |
| マネージド SaaS | Algolia、DocSearch | クラウド | クラウド | 0 | 検索回数 / レコード |
| セルフホスト | Meilisearch、Typesense、Elastic、OpenSearch | 自社サーバ | 自社サーバ | 大 | インフラ費 |
| 静的 / クライアント | Pagefind、Orama、Lunr、Fuse | ビルド / ブラウザ | ブラウザ | 0 | 無料 |
| AI ドキュメント検索 | Markprompt、kapa.ai、Inkeep | クラウド | クラウド | 小 | サイト / 質問単位 |
分岐点は 2 つ。
- **データはどこに置かれるか** — クラウド(SaaS)vs 自分(セルフホスト)vs ブラウザ(静的)。
- **結果は何か** — マッチしたページ一覧(検索)vs 合成された回答(AI 検索)。
前者はコスト / コンプライアンスの問題、後者は UX の問題。どちらも正解は決まっていない。100 ページの静的サイトに Elastic クラスタは要らないし、50 万ページのマニュアルに Lunr.js は詰め込めない。サイト規模・更新頻度・コンテンツ種別・コンプライアンス要件で陣営が決まる。
2. Algolia + DocSearch — OSS ドキュメントの事実上の標準
Algolia(2012 年パリ創業)はマネージドサイト検索の代名詞だ。サインアップしてインデックスを作り、キーを差し、InstantSearch を貼り付ければ 5 分で検索ボックスが立つ。結果品質、タイポ許容、ファセット、シノニム、アナリティクスが揃っている。欠点は価格 — 無料枠(月 1 万検索程度)を超えると一気に高くなる。
オープンソース / ドキュメントサイトに決定的なのが **DocSearch** プログラムだ。Algolia が OSS ドキュメントサイトに限ってクローラ + インデックス + クエリを無料提供する。React、Vue、Vite、Tailwind、Next.js、MDN — どこにでもある「Search Docs」ボックスのほとんどが DocSearch だ。申請 → 承認 → メタタグ 1 行 + DocSearch コンポーネント → 完了。
// Next.js + DocSearch コンポーネント
export function Search() {
return (
appId="YOUR_APP_ID"
apiKey="YOUR_SEARCH_ONLY_API_KEY"
indexName="your-docs"
/>
)
}
DocSearch v3 はキーボードショートカット(通常 Cmd+K)、モーダル UI、最近の検索、お気に入りまで全部入り。自前ホスティングが無いので運用負担は 0、OSS であれば料金も 0 だ。
商用サイトなら Standard プランが $50/month から始まり、検索回数 / レコード単位でスケールする。大規模 e コマースはいずれ高くつくが、その分結果品質とアナリティクスで取り戻す。**2026 年の Algolia は NeuralSearch(旧 Sajari 買収)で埋め込みベースのセマンティック + キーワード ハイブリッドを 1 つのインデックスで提供する — セルフホストで追いつくのは難しい部分だ。**
3. Meilisearch — Rust オープンソースの旗手
Meilisearch(フランス、2018)は「Algolia のセルフホスト代替」として一番よく推薦される名前だ。Rust 製の単一バイナリ、REST API、デフォルトでタイポ許容 / ステミング / ファセットが全部オン。Docker でワンライナーで立つ。
docker run -p 7700:7700 getmeili/meilisearch:v1.10
インデックス追加もシンプル。
curl -X POST 'http://localhost:7700/indexes/posts/documents' \
-H 'Content-Type: application/json' \
--data-binary '[{"id": 1, "title": "Hello", "body": "world"}]'
クエリ。
curl 'http://localhost:7700/indexes/posts/search?q=hllo'
→ hllo と hello を同じ結果として扱う(タイポ許容)
2024 年にシリーズ B を調達して資金は厚く、2026 年現在 v1.x が安定。埋め込みベースのセマンティック検索 / ハイブリッド検索が標準機能に入っており、OpenAI / Ollama / Cohere エンベッダーをインデックスに接続できる。マネージドオプション(Meilisearch Cloud)もあり、同じ負荷に対しては Algolia より安いのが一般的だ。
選ぶ場面: **自社データを外に出したくないとき、そして日本語・韓国語・中国語など非ラテン文字検索を強くしたいとき**(Meili は charabia で形態素分割を上手にこなす)。Algolia ほどアナリティクス / シノニム / ルールエンジンは豊富ではないが、OSS ライセンス + Rust の安定性 + 1MB のシングルバイナリは魅力的だ。
4. Typesense — Meilisearch 最大のライバル
Typesense(2017、C++)も同じ「Algolia 代替」エリア。Meili と頻繁に比較され、大枠は似ている。違いはディテール。
| 項目 | Meilisearch | Typesense |
| --- | --- | --- |
| 言語 | Rust | C++ |
| ライセンス | MIT | GPL v3 |
| 単一バイナリ | はい | はい |
| 埋め込み / セマンティック | 標準 | 標準 |
| クラスタリング | Cloud のみ | OSS でも |
| マネージドホスティング | Meilisearch Cloud | Typesense Cloud |
| 日本語デフォルト | 分割可能 | 分割可能 |
Typesense の差別化は、クラスタリングと Raft 合意がオープンソースビルドにも含まれていること。クラスタを運用するなら Typesense の方が少し親切。逆にシングルノードでシンプルにいくなら Meili が少し軽い、と言われる。
クラウド価格はどちらも RAM / CPU ベースで、同じデータ量に対して Algolia より安いことが多い。2026 年時点でどちらも v1.x / v0.27.x の安定版、開発も活発だ。
5. Pagefind — 静的サイト検索の正解
Pagefind(2022 年、Eleventy チームが作った)は「静的サイトのために作られた検索」だ。コア発想:
- ビルド後に出力ディレクトリをスキャンし、**JSON / WASM インデックスファイルを生成**。
- ランタイムではバックエンドなしで、ユーザが検索したとき **必要なインデックスチャンクだけを遅延ロード** してブラウザでクエリ。
- インデックスが大きければチャンク分割され、ページ数が多くても初期ロードは小さい。
ビルド後
npx pagefind --site dist
ブラウザ側のコード。
const search = await pagefind.search('algolia')
for (const result of search.results) {
const data = await result.data()
console.log(data.url, data.excerpt)
}
Astro、Eleventy、Next.js(静的ビルド)、Hugo、どこでも使える。バックエンドが 0、CDN だけあれば水平にいくらでもスケール。**サイトページが数万以下なら、2026 年の正解にもっとも近い。**
限界は明確。ページが数十万になるとインデックスサイズ自体が膨らみ、ビルド時間も伸びる。リアルタイム更新もない(ビルド時に焼く)。アナリティクス / ファセットもマネージド SaaS ほど豊富ではない。それでもブログ / ドキュメント / OSS プロジェクトサイトには大抵十分だ。
6. Orama — TypeScript + タイポ許容 + セマンティック
Orama(2022、イタリア)は「TypeScript で書かれた、ブラウザでもサーバでも動く検索エンジン」だ。同じコードが Node / Deno / ブラウザ / Edge どこでも動く。
const db = create({
schema: {
title: 'string',
body: 'string',
tags: 'string[]',
},
})
insert(db, { title: 'Hello', body: 'world', tags: ['a', 'b'] })
const result = await search(db, { term: 'hllo', tolerance: 1 })
特徴:
- 依存ゼロの TypeScript、バンドルサイズが小さい。
- タイポ許容 / BM25 / ファセット / シノニム 標準装備。
- セマンティック検索(埋め込み)を同じライブラリで提供。
- マネージドオプション(Orama Cloud)もある。
Pagefind との比較 — Pagefind は「静的サイトの出力から自動でインデックス生成」に強く、Orama は「ライブラリとして自分でインデックス / クエリを書く」のに強い。どちらもインブラウザで動かせる。SaaS / アプリなら Orama、静的サイトなら Pagefind が普通は便利だ。
7. Elastic + OpenSearch — エンタープライズの重量級
Elasticsearch(2010、ELK スタックの E)は長らく検索エンジン界の絶対王者だった。2021 年にライセンスを SSPL / Elastic License に変えたことで AWS がフォークし、OpenSearch が生まれた。2026 年現在、2 つの系統が並行進化している。
- **Elastic** — 会社自身がクラウドとセルフホストの両方を運営。機械学習 / セマンティック検索 / Observability(APM、ログ)まで同じスタックに統合。2024 年に Elasticsearch / Kibana の一部が Apache 2.0 に復帰。
- **OpenSearch** — AWS 主導。Apache 2.0。Amazon OpenSearch Service としてマネージド提供。日本・韓国のクラウドチームでよく使われる。
どちらも強力だが、**サイト検索だけ必要なら過剰**。本当の価値はログ分析 / メトリクス / APM / フルセマンティック検索 / 自由な DSL など広いシナリオで出る。ドキュメントサイトに Elastic クラスタを運用すると、その運用コストが価値を上回ってしまう。**数十〜数百 GB のデータ + 複雑なクエリ + 分析まで同じインフラ** ならその時に Elastic / OpenSearch。
Docker でシングルノード(開発用)
docker run -p 9200:9200 \
-e "discovery.type=single-node" \
docker.elastic.co/elasticsearch/elasticsearch:8.15.0
8. Lunr.js / Fuse.js / MiniSearch / FlexSearch — インブラウザの選択肢
伝統的な「バックエンドなし検索」ライブラリ群。2026 年現在もそれぞれに居場所がある。
Lunr.js — クラシック、静的サイト検索の元祖
2012 年頃に Jekyll / Hugo サイトで一番見かけた。ビルド時に JSON インデックスを作り、ブラウザで検索。BM25 ベース、英語ステマー標準、他言語サポートもある。**今でも動くが、開発の活発さは落ちた。** 新プロジェクトなら Pagefind / Orama の方が普通は良い。
Fuse.js — ファジー / タイポ許容に特化
const fuse = new Fuse(items, { keys: ['title', 'body'], threshold: 0.3 })
const result = fuse.search('algoria') // タイポ → algolia
検索エンジンではなく **JavaScript 配列をあいまいマッチするライブラリ**。メニュー / コマンドパレット / オートコンプリートに頻繁に使う。サイト全文検索には足りないが、小さなデータセットには完璧だ。
MiniSearch
小さく速いインブラウザ全文検索。典型的に数万ドキュメントまでインデックス可能。API はシンプル、BM25 + タイポ許容 + ファセット対応。
const ms = new MiniSearch({ fields: ['title', 'body'] })
ms.addAll(docs)
const results = ms.search('hello world', { fuzzy: 0.2 })
FlexSearch
JavaScript 検索ライブラリで最速とよく言われる。インデックス形式が効率的でメモリも小さい。API は他より少し癖があるが、性能差が意味を持つ局面では魅力的だ。
**選択ガイド**: 静的サイトなら Pagefind、SaaS のインブラウザライブラリ用途なら Orama または MiniSearch、ファジーマッチだけなら Fuse.js、極限性能が要るなら FlexSearch。
9. Markprompt — AI ドキュメント検索の 1 つの選択肢
検索が「キーワード → ページ」だったとすれば、AI ドキュメント検索は「質問 → 回答」だ。ユーザが自然言語で問い、RAG が関連ドキュメントを取り、LLM が回答を合成する。
Markprompt(2023)は「Markdown / MDX ドキュメントの上に乗せる AI 検索」として始まった。ワークフロー:
1. ドキュメントサイトをクロール、または GitHub リポジトリを連携。
2. チャンキング + 埋め込みでベクトルインデックス生成。
3. チャットウィジェット / 検索ボックス / API で公開。
4. ユーザの質問 → 関連チャンク取得 → LLM 合成 → 出典リンク付きの回答。
// React ウィジェット(簡略)
オープンソースのライブラリ群(@markprompt/react など)とマネージドホスティングの両方を提供。料金は回答 / メッセージ単位。大きな強みは **出典の引用 + 素早い導入**、そして **チャット UI と検索 UI の両方** が用意されている点だ。
10. kapa.ai — 開発者ドキュメントに特化した AI 検索
kapa.ai は「あなたの技術ドキュメントで訓練されたチャットボット」と位置づけられる。Docker、OpenAI、Mapbox、Reflex といった会社が docs ページ脇の「Ask AI」ボタンで使う。
差別化ポイントは **開発者ドキュメント領域に強くチューニング** されていることだ。コードブロックの引用、バージョン / ライブラリ認識、GitHub Issues / Discord / Stack Overflow といった追加ソースの統合、幻覚を抑える回答検証パイプライン。LangChain ベースで始め、現在は自前のパイプライン。
デプロイは大抵ウィジェット 1 行。
data-website-id="YOUR_ID"
data-project-name="YourProject"
async></script>
料金はエンタープライズ見積で、Markprompt より一般的に高めだが、回答品質や運用(幻覚モニタリング、人手レビューワークフロー)により投資している。
11. Inkeep / Sourcegraph Cody / AnswerOverflow — その他の AI 検索
エコシステムにはもう少しある。
Inkeep
製品ドキュメント + コミュニティ + コードを統合して回答する AI チャットボット。Anthropic、Pinecone、Speakeasy といった SaaS が使う。SDK / ウィジェット / Slack ボット / Discord ボットなど表面が豊富。
Sourcegraph Cody
本業がコード検索の Sourcegraph が作った AI コードアシスタント。**サイト検索ではなくコードベース検索** — IDE 内で「この関数はどこから呼ばれているか」のような質問に答える。ドキュメントサイトに直接埋め込むカテゴリではないが、開発者ツールとして強力。
AnswerOverflow
Discord のヘルプチャンネルを検索可能なインデックスに変え、Google / サイト検索で出るようにする。「Discord に答えがあるのに見つからない」OSS プロジェクトの問題への解。無料 + セルフホスト可能、マネージドもある。
(参考)Mark(RIP)
2010 年代に人気だった検索ライブラリの一部は消えた。Sajari は Algolia に買収され NeuralSearch に合流。Mark のような小規模プロジェクトはメンテが止まった。新プロジェクトなら、上で挙げたアクティブなツールを見るのが安全。
12. 埋め込み vs キーワード vs ハイブリッド
2026 年の検索における核論争: **埋め込みベースのセマンティック検索はキーワード検索を置き換えたか**?
答え: **いいえ。両方を併用するハイブリッドが標準になった。**
3 つのモードの違い。
| 方式 | 仕組み | 強み | 弱み |
| --- | --- | --- | --- |
| キーワード(BM25 等) | 単語一致、重み | 厳密な用語 / コード / 固有名詞 | シノニム、意味 |
| 埋め込み(ベクトル) | 意味埋め込み、コサイン類似度 | 「関連内容」を拾う | 厳密な用語に弱く、コスト高 |
| ハイブリッド | 両方 + リランク | 両方の強み | 運用が複雑、チューニング必要 |
現場で多いパターン。
1. キーワード(BM25)で候補 100 件。
2. 埋め込みセマンティックスコアで再ランク。
3. 必要なら LLM ベースのリランカー(クロスエンコーダ、Cohere Rerank 等)で最終 10 件。
Algolia NeuralSearch、Meilisearch、Typesense、Elastic、OpenSearch すべてが 2026 年にハイブリッドをサポート。静的 / インブラウザツール(Pagefind / Orama)も一部埋め込みを取り込むが、埋め込みインデックス自体が重いのでサイトが大きくなると限界。**AI ドキュメント検索(Markprompt / kapa.ai)は埋め込みが本業で、キーワードを補助に使う構造。**
13. 日本 / 韓国 — Yahoo!検索・ナビゲーション・カカオ 検索 SDK
グローバルの標準は上で全部扱ったが、日本・韓国市場には別事情がある。
日本 — Yahoo! / サイト検索
- **Yahoo!検索 API** — Yahoo! JAPAN のウェブ検索を API で公開。ライセンス / 利用上限の関係で、実際に自社サイトの検索ボックスとして使うケースは減った。
- **日本語形態素解析** — MeCab / Sudachi / Kuromoji が定番。Elastic / OpenSearch の kuromoji プラグイン、Algolia の日本語アナライザ、Meilisearch の charabia(自前分割器)など。**スペースが無い日本語ではトークナイザの品質が検索品質をほぼ決める。**
韓国 — Naver / Kakao
- **NAVER Search API** — ブログ / ニュース / 百科事典 / ショッピング / 本 / 映画などを検索して結果を受ける。自社サイトのインデックスではなく「Naver のインデックスを借りる」モデル。申請 / キー発行は NAVER Developers から。
- **Kakao Search API** — Daum / Kakao のインデックスから検索。似たカテゴリ(ウェブ / ブログ / カフェ / 本 / 映像 / 画像)。
- **韓国語形態素解析** — Algolia / Meili / Typesense / Elastic すべて韓国語トークナイザ(MeCab、nori、lucene-analyzers-nori 等)を接続可能。結果品質はアナライザ設定に大きく左右される。
要約: **日韓ともにインデックス自体はグローバルツールを使い、アナライザ / トークナイザに神経を使う**。Naver / Yahoo! API は別のトラフィックシナリオ(他サイトの結果を自社ページに表示)に使うのが普通。
14. 誰が何を選ぶべきか — シナリオ別推奨
| シナリオ | 第 1 候補 | 第 2 候補 |
| --- | --- | --- |
| OSS ドキュメントサイト(1 万ページ未満) | DocSearch(無料) | Pagefind |
| OSS ドキュメントサイト(大規模) | DocSearch | Algolia 有料 |
| 個人ブログ / 静的サイト | Pagefind | Lunr.js |
| Astro / Eleventy / Hugo | Pagefind | Orama |
| SaaS インブラウザ検索 | Orama | MiniSearch |
| コマンドパレット / オートコンプリート | Fuse.js | FlexSearch |
| 商用サイト(中規模) | Algolia | Meilisearch Cloud |
| データを外に出せない | Meilisearch(セルフ) | Typesense(セルフ) |
| エンタープライズ + ログまで | Elastic / OpenSearch | - |
| 回答型 docs チャットボット(開発者) | kapa.ai | Inkeep |
| 回答型 docs チャットボット(プロダクト) | Markprompt | Inkeep |
| Discord の回答を Web に | AnswerOverflow | - |
| コードベース検索 | Sourcegraph Cody | - |
| 日本語サイト(自前インデックス) | Elastic + kuromoji / Algolia | Meili + charabia |
| 韓国語サイト(自前インデックス) | Meili / Algolia + 韓国語アナライザ | - |
大原則:
- **サイト規模が小さいなら静的 / クライアントで終わらせる**。運用は 0。
- **規模 / 更新頻度 / 分析要件が伸びたら** マネージド SaaS かセルフホスト検索エンジン。
- **コンプライアンス / データ主権が肝**ならセルフホスト。
- **ユーザが自然言語で問い始めたら** AI ドキュメント検索を載せる。
最初から完璧な選択はない。小さく始める(Pagefind / DocSearch / Lunr)→ 足りなくなったら移行 → データが増えたらセルフホスト / SaaS → ユーザがチャットで問い始めたら AI 検索導入。これが 2026 年の典型的な進化経路だ。
おわりに — 「検索ボックス」の裏の決断
検索ボックス 1 つに隠れた 4 つの決断。
1. **データホスティング** — クラウド / 自社サーバ / ブラウザ。
2. **検索アルゴリズム** — キーワード / 埋め込み / ハイブリッド。
3. **結果の形** — ページ一覧 / 合成された回答。
4. **運用責任** — マネージド / セルフ。
2026 年の朗報は **どの決断にも良質なオープンソース / 無料の選択肢がある** こと。OSS docs には DocSearch、静的サイトには Pagefind、セルフインデックスには Meilisearch / Typesense、インブラウザには Orama / Fuse / MiniSearch、AI 回答には Markprompt / kapa.ai。「うちのサイト検索しやすいね」とユーザに感じてもらうのに巨大インフラが要る時代は終わった。
残るのは — 自分のサイトでユーザが何をどう探しているか一度見て、上の地図から適切な陣営を選ぶ、それだけだ。
参考 / References
- [Algolia DocSearch](https://docsearch.algolia.com/) — OSS ドキュメント向け無料検索。
- [Algolia InstantSearch](https://www.algolia.com/products/search-and-discovery/instantsearch/) — UI コンポーネント。
- [Algolia NeuralSearch](https://www.algolia.com/products/ai-search/) — セマンティック + キーワード ハイブリッド。
- [Meilisearch](https://www.meilisearch.com/) — Rust セルフホスト検索。
- [Meilisearch Cloud](https://cloud.meilisearch.com/) — マネージドオプション。
- [Typesense](https://typesense.org/) — C++ セルフホスト検索。
- [Pagefind](https://pagefind.app/) — 静的サイト向け検索(Eleventy チーム)。
- [Orama](https://orama.com/) — TypeScript 検索エンジン。
- [Elasticsearch](https://www.elastic.co/elasticsearch) — エンタープライズ検索 + Observability。
- [OpenSearch](https://opensearch.org/) — Apache 2.0、AWS 主導フォーク。
- [Amazon OpenSearch Service](https://aws.amazon.com/opensearch-service/) — AWS マネージド。
- [Lunr.js](https://lunrjs.com/) — 静的サイト ブラウザ検索のクラシック。
- [Fuse.js](https://www.fusejs.io/) — JavaScript ファジーマッチ。
- [MiniSearch](https://lucaong.github.io/minisearch/) — 軽量全文検索。
- [FlexSearch](https://github.com/nextapps-de/flexsearch) — 高速 JS 検索。
- [Markprompt](https://markprompt.com/) — AI ドキュメント検索。
- [kapa.ai](https://www.kapa.ai/) — 開発者ドキュメント用 AI チャットボット。
- [Inkeep](https://inkeep.com/) — プロダクト + コミュニティ統合 AI 検索。
- [Sourcegraph Cody](https://sourcegraph.com/cody) — コードベース AI。
- [AnswerOverflow](https://www.answeroverflow.com/) — Discord 回答を Web に。
- [Yahoo! JAPAN Developer Network](https://developer.yahoo.co.jp/) — Yahoo!検索ほか日本 API。
- [Elasticsearch kuromoji プラグイン](https://www.elastic.co/guide/en/elasticsearch/plugins/current/analysis-kuromoji.html) — 日本語アナライザ。
- [NAVER Developers — Search API](https://developers.naver.com/docs/serviceapi/search/) — Naver 検索 API。
- [Kakao Developers — Search](https://developers.kakao.com/docs/latest/ko/daum-search/common) — Daum / Kakao 検索。
- [Lucene nori 韓国語アナライザ](https://lucene.apache.org/core/9_10_0/analysis/nori/index.html) — 韓国語形態素解析。
- [Cohere Rerank](https://cohere.com/rerank) — ハイブリッド検索用リランカー。
현재 단락 (1/195)
2026 年でも、静的サイト / ドキュメント / SaaS 画面を開けば右上に小さな虫眼鏡アイコンがある。押すとモーダルが開き、入力すると結果が出る。ユーザは「全部同じ」と思っている。だが開発者にと...