jsonscraper
市場
ジャーナルに戻る

Cloudflare AI Search、SQLクエリでD1の行をインデックス化

ベータ版の連携により、選択したSQLiteデータベースのレコードを検索ドキュメントに変換し、スケジュールに沿ってインデックスを更新できます。

編集方針 誤りを報告する

Cloudflare D1にコンテンツを保存しているチームは、別途データを書き出さなくても、選択したレコードをAI Searchに渡せるようになりました。2026年11月12日、Cloudflareはサービスのベータ版でD1をデータソースとして追加しました。開発者が読み取り専用クエリを指定すると、AI Searchは返された各行をドキュメントに変換し、スケジュールに沿ってインデックスを更新します。

記事:Cloudflare AI Search、SQLクエリでD1の行をインデックス化
概要:11月12日から、Cloudflare AI SearchはD1のデータを取得できるようになりました。開発者が読み取り専用クエリを指定すると、返された各行が個別のドキュメントになります。管理画面、REST API、Workers bindingから接続できますが、機能はまだベータ版です。
画像の役割:カバー — 中心となるアイデア
セクション:
視覚的な主題:印刷されたデータベースの表が、整理された検索可能な文書へと変化する様子を描いたエディトリアル写真。
SQLクエリで選択したD1の行が、検索インデックス内の個別ドキュメントになります。© jsonscraper · AI生成

何が変わったのか

これまでAI Searchが対応していたデータソースには、R2オブジェクトやウェブコンテンツなどがありました。今回からD1もテーブルのデータを直接インデックスに渡せるようになりました。たとえば、公開済みの記事、商品カタログ、ナレッジベースのレコードなどが対象です。Cloudflareはこの機能を11月12日付の変更履歴で説明しており、管理画面、REST API、Workers bindingからD1をデータソースにしたインスタンスを作成できます。

データベースの所有者はSQLクエリで、どのレコードをインデックスに含めるか、どのフィールドをドキュメントのタイトル、本文、メタデータにするかを指定します。記事データベースの場合、たとえば公開済みのコンテンツだけを選び、列にid、title、content、meta_categoryの役割を割り当てられます。このように、開発者が指定したクエリ結果から検索用のデータが作られます。

接続の仕組み

D1をデータソースに設定すると、AI Searchは指定されたクエリを実行し、行を1件ずつインデックス化して、スケジュールに沿ってインデックスを同期します。REST APIとWorkers bindingを使うには、同じCloudflareアカウント内のD1データベースID、サービスのトークンID、そしてid列を返すクエリが必要です。管理画面ではデータベースを選択してクエリを作成し、インスタンスを作る前に1行分の結果を確認できます。手順はD1データソースのドキュメントに記載されています。

列名によって用途が決まります。titleはドキュメントのタイトル、contentは本文になり、meta_で始まる列はメタデータとして保存されます。その他の列は、ドキュメントテンプレートに応じてラベル付きフィールドとして表示できます。これにより、SQLで検索に必要なカテゴリやフィールドを選択できます。

サービスが受け付けるクエリ

クエリはSELECTまたはWITHで始まる単一の読み取り文でなければなりません。また、空でない結果を返し、idの値は空ではなく一意である必要があります。上限は10万行、クエリの長さは1万文字です。ドキュメントでは、バインドパラメーター、コメント、書き込み操作や管理コマンドを含む複数のSQL構文も禁止されています。ORDER BYやLIMITは使用できません。AI Searchは結果をid順に並べてページ単位で読み取るためです。

行のidが変わると、AI Searchは以前のドキュメントを削除し、新しいドキュメントを作成します。そのため、同期には安定した識別子を選ぶ必要があります。結果に含まれる各列名も一意でなければならず、必要に応じてASで指定できます。同期ではクエリ結果全体を読み取るため、D1の読み取り使用量に計上されます。WHERE条件を使えば、インデックス対象を絞り込めます。

どのようなチームに役立つか

この連携は、構造化コンテンツをすでにD1に保存しているチームに適しています。データベースへのクエリで検索対象のレコードを選び、行の追加、変更、削除に応じてインデックスを同期できます。たとえば、商品カタログでは販売可能な商品だけを、ヘルプセンターでは公開済みの記事とそのカテゴリだけを含められます。各行が個別のドキュメントになります。

この連携はまだベータ版です。運用を始める前に、idの一意性と安定性を確認し、必要な列だけを選び、結果の規模と同期スケジュールがD1の使用量にどう影響するかを見積もるとよいでしょう。インデックスは選択した間隔で更新され、同期のたびに結果全体を読み取るため、D1の読み取り回数が増えます。

今回の変更により、D1をAI Searchのデータソースとして利用できるようになり、SQLクエリでデータベースのどの行を検索ドキュメントにするか指定できます。D1にコンテンツを保存しているチームにとって、データとインデックスを直接つなぐ手段となります。導入を計画する際は、行数の上限と同期時のデータベース読み取り量に注意が必要です。

人々

この記事にはまだ人物がリストされていません。

読み続けてくださいCloudflare D1、クエリ応答サイズを制限:データベースのエクスポートが異なる理由
次の記事を読む

読んだ内容を実用的な連携へ

jsonscraperのソーシャルデータAPIを調べ、リクエストを試し、次のワークフローを構築しましょう。

APIを探す