すべてのプロダクト
Search
ドキュメントセンター

OpenSearch:スキーマ

最終更新日:Aug 23, 2026

スキーマは OpenSearch アプリケーションのデータ構造を定義します。スキーマには、データの構成方法を記述する tables と、データの検索およびフィルター方法を制御する indexes という 2 つのトップレベルオブジェクトがあります。テーブル内の各フィールドは、検索またはフィルターとして使用する前に、スキーマに登録する必要があります。

{
    "tables": {
        "main": {
            "primaryTable": true,
            "name": "main",
            "fields": {
                "id": {
                    "name": "id",
                    "type": "LITERAL",
                    "primaryKey": true
                },
                "title": {
                    "name": "title",
                    "type": "TEXT",
                    "primaryKey": false
                },
                "buy": {
                    "name": "buy",
                    "type": "INT",
                    "primaryKey": false
                },
                "cate_id": {
                    "name": "cate_id",
                    "type": "INT",
                    "primaryKey": false
                },
                "cate_name": {
                    "name": "cate_name",
                    "type": "LITERAL",
                    "primaryKey": false
                }
            }
        }
    },
    "indexes": {
        "searchFields": {
            "id": {
                "fields": [
                    "id"
                ]
            },
            "default": {
                "fields": [
                    "title"
                ],
                "analyzer": "chn_standard"
            },
            "cate_name": {
                "fields": [
                    "cate_name"
                ]
            }
        },
        "filterFields": [
            "id",
            "buy",
            "cate_id",
            "cate_name"
        ]
    }
}

この例では、5 つのフィールドを持つ 1 つのテーブル (main) を定義しています。indexes オブジェクトは、これらのフィールドのうち 3 つを検索インデックスにマッピングし、4 つのフィールドをフィルター (属性) フィールドとしてリストアップしています。

構造

スキーマ

フィールドタイプ必須説明
tablesオブジェクトはいテーブル定義。各キーはテーブル名です。各値の構造については、「テーブル」をご参照ください。
indexesオブジェクトはいインデックス構成。詳細は、「インデックス」をご参照ください。

テーブル

{
    "primaryTable": true,
    "name": "main",
    "fields": {
        "id": {
            "name": "id",
            "type": "LITERAL",
            "primaryKey": true
        },
        "title": {
            "name": "title",
            "type": "TEXT",
            "primaryKey": false
        }
    }
}

構造

フィールドタイプ必須説明
name文字列はいテーブルの名前。
primaryTableブール値はいこのテーブルがプライマリテーブルであるかどうかを指定します。
fieldsオブジェクトはいフィールド定義。各キーはフィールド名です。各値の構造については、「フィールド」をご参照ください。

フィールド

{
    "name": "json_nested",
    "type": "NESTED",
    "primaryKey": false,
    "innerSchema": {
        "job": {
            "name": "job",
            "type": "TEXT",
            "primaryKey": false
        },
        "ssn": {
            "name": "ssn",
            "type": "LITERAL",
            "primaryKey": false
        }
    }
}

構造

フィールドタイプ必須説明
name文字列はいフィールドの名前。
type文字列はいフィールドタイプは LITERALTEXTINTNESTED、または OBJECT です。詳細については、「アプリケーションスキーマ」をご参照ください。
primaryKeyブール値はいこのフィールドがプライマリキーであるかどうかを指定します。
joinWith配列いいえこのフィールドを、リンクされた外部データテーブルにリンクします。
innerSchemaオブジェクトいいえネストされたフィールドの構造。typeOBJECT または NESTED の場合に必須です。複数レベルのネストをサポートします。

インデックス

{
    "searchFields": {
        "default": {
            "fields": [
                "title"
            ],
            "analyzer": "chn_standard"
        },
        "id": {
            "fields": [
                "id"
            ]
        }
    },
    "filterFields": [
        "id"
    ]
}

構造

フィールドタイプ必須説明
searchFieldsオブジェクトはい全文検索インデックスの定義。各キーはインデックス名です。各値の構造については、「SearchField」をご参照ください。
filterFields配列はい属性フィールドのリスト。

SearchField

{
    "fields": ["title"],
    "analyzer": "chn_standard"
}

構造

フィールドタイプ必須説明
fields配列はいこの検索インデックスに含まれるテーブルフィールド。
analyzer文字列いいえ適用するアナライザ。カスタムアナライザについては、「カスタムアナライザ」をご参照ください。組み込みアナライザについては、以下の「組み込みアナライザ」および「組み込みアナライザ」をご参照ください。

組み込みアナライザ

中国語

アナライザ説明
chn_standard一般的な中国語分析。ほとんどの中国語全文検索フィールドに使用します。
chn_single単一文字の中国語分析。各文字を独立したトークンとして扱う場合に使用します。
chn_ecommerce中国語の e コマース分析。プロダクト名やショッピング関連のクエリに最適化されています。
chn_film中国語の動画およびエンターテインメント分析。映画のタイトルやメディアコンテンツに最適化されています。
chn_scene_name中国語の人名分析。
chn_scene_org中国語の組織名分析。
chn_it_content中国語テキスト向けの IT コンテンツ分析。

英語

アナライザ説明
eng_standardステミング付きの英語分析。単語の活用形を一致させます (例:「running」は「run」に一致します)。
eng_nostemステミングなしの英語分析。単語の完全な形のみに一致します。

言語に依存しないアナライザと特殊用途のアナライザ

アナライザ説明
simpleシンプルな分析。空白文字と句読点で分割し、トークンを小文字に変換します。
keywordキーワード分析。フィールド値全体を単一のトークンとして扱います。完全一致検索のフィールドに使用します。
fuzzyあいまい分析。トークンのバリエーションを生成し、近似一致をサポートします。
numeric数値分析。
geo地理位置情報分析。地理座標フィールドに使用します。
first_letterシンプルなピンインスペル分析。各ピンイン音節の最初の文字をインデックス化します。
full_pinyin完全なピンインスペル分析。完全なピンイン表記をインデックス化します。