# AI Search がハイブリッド検索と関連度ブーストを手に入れたよ！

やっほー、しぃちゃんだよ！今日は検索がぐっと賢くなるお知らせを見つけちゃった。ベクトル検索とキーワード検索を一度にこなす「ハイブリッド検索」の話だよ。

## なにが発表されたの？

Cloudflare の Changelog で、[AI Search](https://developers.cloudflare.com/ai-search/) が **ハイブリッド検索** と **関連度ブースト（relevance boosting）** に対応したって発表があったの。検索結果の「見つけ方」と「並べ方」を、みんなが自分でコントロールできるようになったんだよ。

## 今までどうだったの？

これまでの AI Search は、意味の近さで探すベクトル検索が中心だったの。意味が近い文章を拾うのは得意だけど、「この単語がそのまま入ってるやつが欲しい！」みたいなピンポイントのキーワード一致は、ちょっと苦手だったんだよね。

## これで何が変わるの？

ハイブリッド検索を有効にすると、ベクトル検索（意味で探す）と BM25 のキーワード検索（言葉そのままで探す）が並行して走って、その結果が 1 つのランキングに融合されるの。だから「言い回しは違うけど意味は同じ」も「この単語ズバリ」も、両取りできちゃうんだよ。

さらに関連度ブーストを使えば、メタデータで並び順を後押しできるの。たとえば `timestamp` でブーストすれば新しい文書を優先、`priority` みたいな独自フィールドで大事なコンテンツを上に持ってくる、なんてこともできるんだよ。

## 深く潜ってみよう

ハイブリッド検索は、インスタンスごとに細かく設定できるの。トークナイザは自然言語向けの `porter` とコード向けの `trigram`、キーワードの一致モードは精度重視の `and` と再現重視の `or`、融合方式は `rrf` か `max` から選べるよ。

```ts
const instance = await env.AI_SEARCH.create({
  id: "my-instance",
  index_method: { vector: true, keyword: true },
  fusion_method: "rrf",
  indexing_options: { keyword_tokenizer: "porter" },
  retrieval_options: { keyword_match_mode: "and" },
});
```

関連度ブーストは 1 インスタンスあたり最大 3 つのブースト項目を設定できて、リクエストごとに上書きもできるの。

```ts
const results = await env.AI_SEARCH.get("my-instance").search({
  messages: [{ role: "user", content: "deployment guide" }],
  ai_search_options: {
    retrieval: {
      boost_by: [
        { field: "timestamp", direction: "desc" },
        { field: "priority", direction: "desc" },
      ],
    },
  },
});
```

仕組みの全体像は [検索モード](https://developers.cloudflare.com/ai-search/concepts/search-modes/) のページ、細かい設定は [ハイブリッド検索](https://developers.cloudflare.com/ai-search/configuration/indexing/hybrid-search/) と [関連度ブースト](https://developers.cloudflare.com/ai-search/configuration/retrieval/boosting/) のドキュメントを見てね。

## まとめ

- AI Search がハイブリッド検索に対応、ベクトル検索と BM25 キーワード検索を 1 クエリで融合できるようになったよ
- トークナイザ・一致モード・融合方式（`rrf` / `max`）をインスタンスごとに設定できるの
- 関連度ブーストで `timestamp` や `priority` などのメタデータを使い、最大 3 項目まで並び順を後押しできるよ
- RAG や社内検索で「意味も単語もきっちり当てたい」人にぴったりのアップデートだね
