Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

パスフィルタリング

最終更新 Markdown で表示Agent セットアップ

パスフィルタリングでは、包含パターンと除外パターンを定義し、インデックスするファイルや URL を制御できます。特定のコンテンツだけをインデックスしたり、検索対象にしたくないファイルをスキップしたりするときに使います。

パスフィルタリングは、Web サイトR2 のどちらのデータソースでも使えます。

設定

AI Search インスタンスの作成時または編集時に、パスフィルターを設定できます。ダッシュボードでは Path Filters を開き、包含ルールまたは除外ルールを追加します。インスタンスの Settings ページから、いつでもパスフィルターを更新できます。

REST API を使う場合は、設定の source_paramsinclude_itemsexclude_items を指定します。

パラメーター 上限 説明
include_items string[] 最大 10 パターン これらのパターンの少なくとも 1 つに一致するアイテムだけをインデックスします
exclude_items string[] 最大 10 パターン これらのパターンのいずれかに一致するアイテムをスキップします

どちらのパラメーターも任意です。どちらも指定しない場合、データソースの全アイテムがインデックスされます。

フィルタリングの動作

ワイルドカードのルール

除外ルールは包含ルールより優先されます。フィルタリングは次の順で適用されます。

  1. 除外チェック: アイテムがいずれかの除外パターンに一致する場合、スキップされます。
  2. 包含チェック: 包含パターンが定義されていて、アイテムがどれにも一致しない場合、スキップされます。
  3. インデックス: アイテムはインデックスへ進みます。
シナリオ 動作
ルールなし すべてのアイテムがインデックスされます
exclude_items のみ 除外パターンに一致するアイテム以外がインデックスされます
include_items のみ 包含パターンの少なくとも 1 つに一致するアイテムだけがインデックスされます
両方を定義 先に除外パターンを確認し、残ったアイテムは包含パターンに一致する必要があります

パターン構文

パターンは、micromatch に基づく、大文字と小文字を区別するワイルドカード構文を使います。

ワイルドカード 意味
* パス区切り(/)以外の任意の文字に一致します
** パス区切り(/)を含む任意の文字に一致します

パターンに含められる文字は次のとおりです。

  • 英字、数字、アンダースコア(a-zA-Z0-9_
  • ハイフン(-)とドット(.
  • パス区切り(/
  • URL 文字(?:=&%
  • ワイルドカード(***

インデックスジョブのステータス

フィルタリングルールでスキップされたアイテムは、ジョブログに次の理由で記録されます。

  • 除外一致: Skipped by rule: {pattern}
  • 包含不一致: Skipped by Include Rules

フィルターが期待どおり動いているかは、AI Search インスタンスの Jobs タブで確認できます。

注意点

  • 大文字と小文字の区別: パターン照合は大文字と小文字を区別します。/Blog/*/blog/post.html に一致しません。
  • 完全パス照合: パターンはパスまたは URL 全体に一致します。部分一致には先頭に ** を付けます。たとえば docs/*docs/file.pdf に一致しますが、site/docs/file.pdf には一致しません。**/docs/* は両方に一致します。
  • 単一の * はディレクトリをまたぎません: パス区切りをまたいで一致させるには ** を使います。たとえば docs/*docs/file.pdf に一致しますが、docs/sub/file.pdf には一致しません。docs/** は両方に一致します。
  • 末尾のスラッシュは意味を持ちます: URL は正規化せず、そのまま照合します。/blog//blog に一致しません。

R2 データソース

ユースケース パターン インデックス対象 スキップ
docs 内の PDF だけをインデックスする Include: /docs/**/*.pdf /docs/guide.pdf/docs/api/ref.pdf /docs/guide.md/images/logo.png
一時ファイルとバックアップファイルを除外する Exclude: **/*.tmp**/*.bak /docs/guide.md /data/cache.tmp/old.bak
一時フォルダーとバックアップフォルダーを除外する Exclude: /temp/**/backup/** /docs/guide.md /temp/file.txt/backup/data.json
docs をインデックスし、下書きは除外する Include: /docs/**、Exclude: /docs/drafts/** /docs/guide.md /docs/drafts/wip.md
インスタンスを 1 テナントに限定する Include: /customers/acme/** /customers/acme/report.pdf /customers/globex/report.pdf

共有バケットを使い、テナントごとに分離したインスタンスを用意する方法は、マルチテナンシー を参照してください。

Web サイトのデータソース

ユースケース パターン インデックス対象 スキップ
ブログページだけをインデックスする Include: **/blog/** example.com/blog/postexample.com/en/blog/article example.com/about
管理ページを除外する Exclude: **/admin/** example.com/blog/post example.com/admin/settings
ログインページを除外する Exclude: **/login* example.com/blog/post example.com/loginexample.com/auth/login-form
docs をインデックスし、下書きは除外する Include: **/docs/**、Exclude: **/docs/drafts/** example.com/docs/guide example.com/docs/drafts/wip

API の形式

API を使う場合は、source_params にパターンを指定します。

{
	"source_params": {
		"include_items": ["<PATTERN_1>", "<PATTERN_2>"],
		"exclude_items": ["<PATTERN_1>", "<PATTERN_2>"]
	}
}

役に立ちましたか?