> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/datasets/ja/guan-li/manage-datasets/dataset-search.md).

# データセットを検索する

テキスト検索クエリとフィルターを使って、Roboflow のデータセットをよりよく把握します。

## 概要

データセット検索を使うと、ファイル名検索、構造化フィルター（タグ、分割、クラス、サイズ、アノテーション数）、ブール論理、自然言語によるセマンティック検索を使って、プロジェクト内の特定の画像を見つけることができます。データの監査、誤ラベルや不足しているアノテーションの発見、レビューや書き出し用の対象サブセットの作成に役立ちます。同じクエリは Web アプリと検索 REST API の両方で利用できます。

## Web アプリ

Roboflow では、ファイル名、検索クエリを使って画像ファイルを検索でき、クエリとフィルターを組み合わせて特定の画像を見つけたり、データをより深く把握したりできます。

* **特定のタグを持つ分割内の画像:**\
  `tag:factory split:train`\
  これはタグフィルターと分割フィルターを使用しています
* **セマンティック検索とクラスフィルターを使って不足しているラベルを見つける**:\
  `person -class:helmet`\
  これはセマンティック検索とクラスフィルターの反転フィルターを使用しています
* **クラスを持つすべての画像に特定のフィルターが必要な場合:**\
  `class:helmet AND NOT (tag:v1 OR tag:v2)`\
  これはクラスフィルター、ブール論理、およびタグフィルターを使用しています
* **注釈数が少ない横長の画像を見つける:**\
  `min-width:1000 max-annotations:1`\
  これは最小幅フィルターと最大アノテーション数フィルターを使用しています

利用可能な [検索フィルターの一覧](#search-filters)をご覧ください。以下に例もあります

{% hint style="info" %}
これらの検索フィルターとクエリはすべて組み合わせて使えます
{% endhint %}

### セマンティック検索

画像を説明することで検索できます。これらのクエリは、検索語に最も近い画像を探し、対象物がまだラベル付けされていない場合でも画像を見つけるのに役立ちます。

セマンティック検索は、フィルターセレクターを使わずにテキストクエリを入力したときに発生します（例: `filename:`)

<figure><img src="https://2416768182-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVfRxNsvCh4GOyqrjmzX%2Fuploads%2Fgit-blob-252e7735b8f04fdeb7b567c8a73c783ba42c7ba0%2Fimage%20(355).png?alt=media" alt=""><figcaption></figcaption></figure>

### ファイル名で検索

次の `filename:` フィルターまたはファイル名テキストボックスを使ってファイル名を検索できます。クエリは自動生成されます。

<figure><img src="https://2416768182-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVfRxNsvCh4GOyqrjmzX%2Fuploads%2Fgit-blob-007ef7663b94243be3a88de95df3a6fe6345bf5f%2Fimage%20(354).png?alt=media" alt="" width="192"><figcaption></figcaption></figure>

### データセット分割で検索

データセットの分割（train、valid、test）で画像を検索します

<figure><img src="https://2416768182-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVfRxNsvCh4GOyqrjmzX%2Fuploads%2Fgit-blob-42804a6e68a1551a7f23c0fe1746da8231fb5b02%2Fimage%20(356).png?alt=media" alt="" width="257"><figcaption></figcaption></figure>

画像を別の分割に再割り当てするには、それらを選択するか、検索結果から「一致するものをすべて選択」を選んでから、一括操作メニューの「データセット分割を変更」をクリックします。大量の選択はバックグラウンドで処理されます。

### アップロード日時で検索

次を使って、Roboflow に最初にアップロードされた日時で画像を絞り込みます `date:` フィルター。アップロード日時は固定であり、画像が編集、再アノテーション、または分割間で移動しても変わりません。

使用 `date:YYYY-MM-DD` を使うと特定の日を指定でき、比較演算子を組み合わせて範囲を検索できます:

`date>=2026-01-01 date<2026-02-01`

### 検索フィルター

利用可能なフィルターは次のとおりです:

* `like-image:<IMAGE_ID>`：画像コンテンツに基づくセマンティック検索
* `tag` ：ユーザーが提供したタグでフィルターします。
* `filename` ：指定されたファイル名に一致するファイル名を検索します。クエリの前後に \* を付けると部分一致検索になります。
* `split` ：分割（train、test、valid）でフィルターします。
* `job:<JOB_ID>` ：指定されたジョブ ID を持つ画像を表示します。
* `min-width:X` ：幅が X より大きい画像を表示します。
* `max-width:X` ：幅が X 未満の画像を表示します。
* `min-height:X` ：高さが X より大きい画像を表示します。
* `max-height:X` ：高さが X 未満の画像を表示します。
* `min-annotations:X` ：指定された数より多いアノテーションを持つ画像をフィルターします。
* `max-annotations:X` ：指定された数より少ないアノテーションを持つ画像を表示します。
* `class:CLASS`：指定されたラベルのアノテーションを少なくとも 1 つ持つ画像を表示します。
* `date:YYYY-MM-DD` ：画像がアップロードされた固定日付でフィルターします。比較演算子に対応しています（例: `date>=2026-01-01 date<2026-02-01`).

#### ブール論理

AND、OR、NOT、および括弧を使って複数のフィルターを組み合わせ、複雑なクエリを作成できます。

`class:helmet AND NOT (tag:v1 OR tag:v2)`

#### 反転フィルター

フィルターに一致する画像を除外するには、フィルターの前にマイナス記号を付けます。

`class:helmet -class:vest`

#### 数値付きクラスフィルター

画像内のラベル付き項目数でフィルターします。

`class:helmet=3 class:vest>=4`

### API

Roboflow 上のデータセットや画像も、次の方法で検索できます [検索 API](#http-api).

## HTTP API

REST API を使用して、Roboflow にホストされている画像を検索できます。エンドポイントは 2 つあります。プロジェクト単位の `/:workspace/:project/search` エンドポイントと、ワークスペース全体の `/:workspace/search/v1` エンドポイントで、これは次と同等です [Web アプリのデータセット検索](#web-app).

### プロジェクト内の画像を検索

Roboflow 上の画像を検索するには、次の API エンドポイントに POST リクエストを送信します:

```url
https://api.roboflow.com/:workspace/:project/search
```

API へのリクエスト例を示します:

```bash
curl -X POST "https://api.roboflow.com/my-workspace/my-project-name/search?api_key=$ROBOFLOW_API_KEY" \
-H 'Content-Type: application/json' \
--data \
'{
    "like_image": "image_id",
    "in_dataset": true,
    "limit": 125
}'
```

このエンドポイントは、POST ボディで次の値を受け付けます:

```json
{
     // 指定すると、セマンティック類似度で並べ替えられた結果を返します
     "like_image": string,
     
     // 指定すると、セマンティック類似度で並べ替えられた結果を返します
     "prompt": string,
     
     // デフォルトは 0
     "offset": int,
     
     // デフォルトは 50（最大: 250）
     "limit": int,
     
     // 指定すると、指定タグを持つ画像をフィルターします
     "tag": string,
     
     // 指定すると、指定クラス名を持つ画像をフィルターします
     "class_name": string,
     
     // true の場合、URL で指定されたプロジェクト内の画像をフィルターします
     "in_dataset": boolean,
     
     // 指定すると、任意のバッチに含まれる画像のみを返します
     "batch": boolean,
     
     // 指定すると、指定されたバッチに含まれる画像のみを返します
     "batch_id": string,

     // 指定すると、任意のアノテーションジョブに含まれる画像のみを返します
     "annotation_job": boolean,

     // 指定すると、指定されたアノテーションジョブに含まれる画像のみを返します
     "annotation_job_id": string,
     
     // 返すフィールドを指定します。デフォルトは ["id", "created"]
     // オプションは ["id", "name", "annotations", "labels", "split", "tags", "owner", "url", "embedding", "created"]
     "fields": string[]
}
```

検索 API は、次の構造を持つレスポンスを返します。利用可能な値は、指定した追加の `fields` によって変わります:

```json
{
    "offset": 0,
    "total": 292,
    "results": [
        {
            "id": "image123",
            "name": "humpbackwhale.jpg",
            "owner": "owner123",
            "url": "https://source.roboflow.com/owner123/image123/original.jpg",
            "annotations": {
                "count": 5,
                "classes": {
                    "whale": 1,
                    "fish": 4
                }
            },
            "labels": [],
            "tags": [
                "cam_x13"
            ]
        }
        // ... など
    ]
}
```

### ワークスペース全体で画像を検索

Workspace Image Search API を使うと、ワークスペース内の画像を一覧表示および検索できます。

この API を使うと、次と同様のクエリ文字列を使用して、フィルタリング、並べ替え、セマンティック検索を実行できます [Roboflow Web アプリケーションの画像検索機能](#web-app).

#### エンドポイント

API にリクエストするには、 `POST` リクエストを次のエンドポイントに送信します:

```
https://api.roboflow.com/{WORKSPACE}/search/v1?api_key=API_KEY
```

ここで `WORKSPACE` はワークスペース ID であり、 `API_KEY` は API キーです。

[ワークスペース ID の確認方法を見る](https://docs.roboflow.com/reference/authentication/authentication/workspace-and-project-ids).

[API キーの確認方法を見る。](https://docs.roboflow.com/reference/platform/rest-api/authenticate-with-the-rest-api)

#### 認証

API にアクセスするには、リクエストに API キーを含める必要があります。API キーはクエリパラメータとして渡します。

例: `?api_key={YOUR_API_KEY}`

#### リクエスト形式

**ヘッダー**

* `Content-Type: application/json`

**ボディパラメータ**

* `query` **（必須）**：フィルタリング、並べ替え、またはセマンティック検索を実行するための空でない文字列。例えば: `"nighttime project:{my-project-url}"` は次の画像をフィルターします `my-project-url` プロジェクト内の画像に対して、次と一致するセマンティック並べ替えを適用します `nighttime`。空または未指定の場合は 400 エラーを返します。
* `pageSize`：ページごとに返す結果数（デフォルト: 50）。
* `fields`：レスポンスに含めるフィールドの一覧。指定可能な値は `"tags"`, `"width"`, `"height"`, `"filename"`, `"aspectRatio"`, `"split"`, `"projects"`, `"annotations"`, `"labels"`, `"owner"`, `"url"`.

**リクエスト例**

```bash
curl --location 'https://api.roboflow.com/{WORKSPACE}/search/v1?api_key={API_KEY}' \
--header 'Content-Type: application/json' \
--data '{
    "query": "project:foo nightime",
    "pageSize": 10,
    "fields": ["tags", "width", "height", "filename", "aspectRatio", "split"]
}'

```

#### レスポンス形式

レスポンスは次のフィールドを含む JSON オブジェクトです:

* `results`：画像オブジェクトの配列。
* `total`：見つかった画像の総数。
* `continuationToken`：ページネーション用のトークン。

**画像オブジェクトのフィールド**

次のリクエストで指定した fields パラメータに応じて `fields` ：

* `id`：画像の一意識別子。
* `projectData`：プロジェクト URL をキーとするオブジェクトで、プロジェクト固有のデータを含みます:
  * `split`：データセット分割を示します（例: "test"）。次のときに返されます `"split"` が `fields`.
  * `inDataset`：画像がデータセットに含まれているかどうかを示すブール値。次のときに返されます `"projects"` が `fields`.
  * `annotations`：このプロジェクトにおける画像のアノテーションデータ。以下を含みます `annotationGroup`, `classes`、および `classCounts`。次のときに返されます `"annotations"` が `fields`.
  * `labels`：このプロジェクトにおける画像のラベルデータ。次のときに返されます `"labels"` が `fields`.
* `tags`：画像に関連付けられたタグの配列。
* `width`：画像のピクセル幅。
* `height`：画像のピクセル高さ。
* `filename`：画像ファイル名。
* `aspectRatio`：画像のアスペクト比。
* `owner`：画像の所有者識別子。
* `url`：元の画像ファイルへの直接 URL。

**ページネーションと `continuationToken`**

返される `continuationToken` レスポンス内の は、検索結果に一致するページ間を移動するために使用できます。 `continuationToken` が後続のリクエストに含まれると、次の結果セットを取得します。

を使うには、 `continuationToken`を次の API 呼び出しのリクエストボディに含めます。これにより、元のクエリに基づく次のページの結果が取得されます。

**エラーレスポンス**

* `400` - 次の場合に返されます `query` が欠落または空、または `project:` フィルターが、ワークスペースに属さないプロジェクトを参照している場合。
* `500` - 内部サーバーエラー。

**プロジェクトおよびデータセットのフィルター**

で利用できるすべてのフィルターに加えて [アプリ内のデータセット検索](#web-app)、ワークスペース全体検索では `project` と `dataset` のフィルターもサポートしています。例えば、次のようなクエリを使えます `project:foo project:bar` 両方のプロジェクトに含まれるすべての画像を見つけるために `foo` と `bar`。\
\
次のようなクエリは `dataset:foo`プロジェクト内の画像を返します `foo` ラベル付けされ、プロジェクトのデータセットに追加されたものです。

## Python SDK

`Project.search_all()` は、プロジェクト内の画像を横断する検索結果のページネーション付きイテレータを返します。検索モードは組み合わせ可能で、たとえばクラスで絞り込んだテキストプロンプト、単一バッチに絞った既存画像類似検索などが可能です。

```python
import roboflow

rf = roboflow.Roboflow(api_key="YOUR_API_KEY")
project = rf.workspace().project("my-detector")

records = []
for page in project.search_all(
    prompt="mug on a desk",
    class_name="mug",
    in_dataset=True,
    limit=100,
    fields=["id", "created", "name", "labels"],
):
    records.extend(page)

print(len(records))
```

### パラメータ

* `prompt` （str、任意）- 自然言語の検索プロンプト（CLIP 埋め込みによるセマンティック検索）。
* `like_image` （str、任意）- テキストの代わりに視覚的類似度で検索する画像 ID。
* `tag` （str、任意）- このタグを持つ画像のみ。
* `class_name` （str、任意）- このクラスのアノテーションを持つ画像のみ。
* `in_dataset` （bool、任意）- バッチやアノテーションジョブのステージング領域を除き、プロジェクトのデータセット内の画像に結果を限定するかどうか。
* `batch` （bool、任意）および `batch_id` （str、任意）- 特定のアップロードバッチに限定します。
* `annotation_job` （bool、キーワード専用）および `annotation_job_id` （str、キーワード専用）- 特定のアノテーションジョブに限定します。
* `offset` （int、デフォルト `0`）- ページネーションのオフセット。
* `limit` （int、デフォルト `100`）- ページサイズ。
* `fields` （list\[str]、任意）- 各結果について指定したフィールドのみを要求し、レスポンスサイズを削減します。

`search_all()` ジェネレーターです。各反復で最大 `limit` 件の結果を返し、オフセットを自動的に進めます。1回限りの単一ページ呼び出しには、 `project.search(...)` 同じ引数を使ってください。

### ワークスペース全体の検索

ワークスペース内のすべてのプロジェクトを横断して検索するには、 `Workspace.search()` / `Workspace.search_all()`を使用します。プロジェクトごとのメソッドとは異なり、これらは単一の RoboQL `query` 文字列（たとえば `"class:forklift"`, `"tag:review"`、またはセマンティック CLIP 検索用のフリーテキスト）に加えて、オプションの `page_size` と `fields`を受け取ります。返される各ページは結果行のリストであり、行には `projects` フィールドとしてソースプロジェクトが含まれます。

```python
records = []
for page in rf.workspace().search_all(query="class:forklift"):
    records.extend(page)
```

### 検索結果をダウンロード可能なデータセットとしてエクスポートする

`Workspace.search_export()` は検索を実行し、結果をダウンロード可能なデータセット（COCO / YOLO / VOC など）としてパッケージ化します。 [Export Data (REST)](/datasets/ja/bjon/dataset-versions/exporting-data.md#http-api) で基盤となるエンドポイントを参照してください。

```python
path = rf.workspace().search_export(
    query="forklift",
    format="coco",
    location="./forklift-search",
)
print(path)
```

## CLI

ワークスペース全体の画像は、 [RoboQL](/datasets/ja/guan-li/manage-datasets/dataset-search.md) を使用して検索でき、必要に応じて一致する結果をダウンロード可能なデータセットとしてエクスポートできます。

### 検索

```bash
roboflow search "<query>"
```

#### オプション

| フラグ        | 説明                 |
| ---------- | ------------------ |
| `--limit`  | 返す最大結果数（デフォルト: 50） |
| `--cursor` | ページネーション用の継続トークン   |
| `--fields` | 含めるフィールドのカンマ区切りリスト |

#### 例

特定のタグを持つ画像を検索する:

```bash
roboflow search "tag:reviewed"
```

特定のクラスを含む画像を検索する:

```bash
roboflow search "class:person" --limit 100
```

### 検索結果をエクスポート

追加 `--export` して、一致する画像をデータセットとしてダウンロードします:

```bash
roboflow search "<query>" --export -f <format> -l <location>
```

#### エクスポートオプション

| フラグ                        | 説明                     |
| -------------------------- | ---------------------- |
| `--export`                 | エクスポートモードを有効にする        |
| `-f`, `--format`           | アノテーション形式（デフォルト: coco） |
| `-l`, `--location`         | エクスポートの保存先ローカルディレクトリ   |
| `-d`, `--dataset`          | 特定のプロジェクトに限定する         |
| `-g`, `--annotation-group` | 特定のアノテーショングループに限定する    |
| `--name`                   | エクスポートの任意の名前           |
| `--no-extract`             | zipファイルを保持し、展開をスキップする  |

#### 例

すべてのレビュー済み画像を COCO 形式でエクスポートする:

```bash
roboflow search "tag:reviewed" --export -f coco -l ./reviewed-export
```

特定のプロジェクトの画像を YOLOv8 形式でエクスポートする:

```bash
roboflow search "class:car" --export -d my-project -f yolov8 -l ./cars
```

### JSON出力

```bash
roboflow search "tag:reviewed" --json
```

```json
{
  "results": [...],
  "total": 42,
  "cursor": "next-page-token"
}
```

次の `cursor` 値をページネーションに使用します:

```bash
roboflow search "tag:reviewed" --cursor "next-page-token" --json
```

## MCPサーバー

AIエージェントを [MCPサーバー](https://docs.roboflow.com/agents/mcp-server) に接続すると、これらのツールで画像を見つけられます:

<table data-search="false"><thead><tr><th width="290">ツール</th><th>説明</th></tr></thead><tbody><tr><td><code>images_search</code></td><td>プロジェクト内の画像を検索します。</td></tr><tr><td><code>images_workspace_search</code></td><td>RoboQL を使用してワークスペース全体の画像を検索します。</td></tr></tbody></table>
