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

Resource Orchestration Service:ALIYUN::OTS::SearchIndex

最終更新日:Jan 16, 2025

ALIYUN::OTS::SearchIndex は、データテーブルの検索インデックスを作成するために使用されます。 1 つのデータテーブルに複数の検索インデックスを作成できます。

構文

{
  "Type": "ALIYUN::OTS::SearchIndex",
  "Properties": {
    "IndexName": String,
    "InstanceName": String,
    "TableName": String,
    "FieldSchemas": List,
    "IndexSort": Map,
    "IndexSetting": Map
  }
}

プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

IndexName

String

はい

いいえ

検索インデックスの名前。

なし。

InstanceName

String

はい

いいえ

データテーブルが属するインスタンスの名前。

なし。

TableName

String

はい

いいえ

データテーブルの名前。

なし。

FieldSchemas

List

はい

いいえ

フィールドスキーマのリスト。

なし。

IndexSort

Map

いいえ

いいえ

検索インデックスの事前ソート設定。デフォルトでは、データはプライマリキーでソートされます。

ネストされたデータ型のフィールドを含む検索インデックスの事前ソート設定はスキップできます。

詳細については、IndexSort プロパティをご参照ください。

IndexSetting

Map

いいえ

いいえ

検索インデックスの設定。

詳細については、IndexSetting プロパティをご参照ください。

IndexSort 構文

"IndexSort": {
  "Sorters": List
}

IndexSort プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

Sorters

List

はい

いいえ

事前ソート方法。

PrimaryKeySort メソッドと FieldSort メソッドを使用できます。

詳細については、「ソートとページング」およびSorters プロパティをご参照ください。

Sorters 構文

"Sorters": [
  {
    "FieldSort": Map,
    "PrimaryKeySort": Map,
    "ScoreSort": Map,
    "GeoDistanceSort": Map
  }
]

Sorters プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

FieldSort

Map

いいえ

いいえ

フィールド値でデータをソートすることを指定します。

詳細については、FieldSort プロパティをご参照ください。

PrimaryKeySort

Map

いいえ

いいえ

プライマリキーでデータをソートすることを指定します。

詳細については、PrimaryKeySort プロパティをご参照ください。

ScoreSort

Map

いいえ

いいえ

BM25 ベースのキーワード関連度スコアに基づいてデータをソートすることを指定します。 ScoreSort は、全文検索などの関連性シナリオに適しています。

一致するデータをキーワード関連度スコアでソートするには、ScoreSort を構成する必要があります。 そうしないと、一致するデータは、IndexSort で指定された事前ソート設定に基づいてソートされます。

詳細については、ScoreSort プロパティをご参照ください。

GeoDistanceSort

Map

いいえ

いいえ

地理的な場所でデータをソートすることを指定します。

詳細については、GeoDistanceSort プロパティをご参照ください。

FieldSort 構文

"FieldSort": {
  "SortMode": String,
  "SortOrder": String,
  "FieldName": String
}

FieldSort プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

SortMode

String

いいえ

いいえ

フィールドに複数の値がある場合に使用されるソート方法。

なし。

SortOrder

String

いいえ

いいえ

ソート順序。

有効な値:

  • ASC(デフォルト):昇順

  • DESC:降順

FieldName

String

はい

いいえ

データをソートするために使用されるフィールドの名前。

なし。

PrimaryKeySort 構文

"PrimaryKeySort": {
  "SortOrder": String
}

PrimaryKeySort プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

SortOrder

String

いいえ

いいえ

ソート順序。

有効な値:

  • ASC(デフォルト):昇順

  • DESC:降順

ScoreSort 構文

"ScoreSort": {
  "SortOrder": String
}

ScoreSort プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

SortOrder

String

いいえ

いいえ

ソート順序。

有効な値:

  • ASC(デフォルト):昇順

  • DESC:降順

GeoDistanceSort 構文

"GeoDistanceSort": {
  "Points": List,
  "SortMode": String,
  "SortOrder": String,
  "FieldName": String
}

GeoDistanceSort プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

Points

List

はい

いいえ

ポリゴンを構成する点の座標。 複数の座標を使用してポリゴンを指定できます。

latitude,longitude 形式で座標を指定します。 緯度の有効な値:[-90,+90]。 経度の有効な値:[-180,+180]。 Points のサンプル値:35.8,-45.91

SortMode

String

いいえ

いいえ

フィールドに複数の値がある場合に使用されるソート方法。

なし。

SortOrder

String

いいえ

いいえ

ソート順序。

有効な値:

  • ASC(デフォルト):昇順

  • DESC:降順

FieldName

String

はい

いいえ

データをソートするために使用されるフィールドの名前。

なし。

IndexSetting 構文

"IndexSetting": {
  "RoutingFields": List
}

IndexSetting プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

RoutingFields

List

いいえ

いいえ

カスタムルーティングフィールド。

いくつかのプライマリキー列をルーティングフィールドとして指定できます。 Tablestore は、指定されたルーティングフィールドに基づいて、検索インデックスに書き込まれたデータを異なるパーティションに分散します。 ルーティングフィールド値が同じデータは、同じパーティションに分散されます。

FieldSchemas 構文

"FieldSchemas": [
  {
    "Index": Boolean,
    "IsArray": Boolean,
    "Analyzer": String,
    "EnableSortAndAgg": Boolean,
    "Store": Boolean,
    "SubFieldSchemas": List,
    "FieldName": String,
    "FieldType": String
  }
]

FieldSchemas プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

Index

Boolean

いいえ

いいえ

インデックス作成を有効にするかどうかを指定します。

有効な値:

  • true

  • false

IsArray

Boolean

いいえ

いいえ

値が配列かどうかを指定します。

有効な値:

  • true

  • false

Analyzer

String

いいえ

いいえ

アナライザーのタイプ。

フィールドがテキストデータ型の場合、このプロパティを指定できます。 フィールドが別のデータ型の場合、デフォルトでは単一単語トークン化がアナライザータイプとして使用されます。

詳細については、「トークン化」をご参照ください。

EnableSortAndAgg

Boolean

いいえ

いいえ

ソートおよび集計機能を有効にするかどうかを指定します。

有効な値:

  • true

  • false

Store

Boolean

いいえ

いいえ

フィールドの値を検索インデックスに格納するかどうかを指定します。

有効な値:

  • true

  • false

Store を true に設定すると、データテーブルをクエリすることなく、検索インデックスからフィールドの値を読み取ることができます。 これにより、クエリのパフォーマンスが向上します。

SubFieldSchemas

List

いいえ

いいえ

サブフィールドのフィールドスキーマのリスト。 フィールドがネストされたデータ型の場合、このプロパティを指定して、ネストされたフィールド内のサブフィールドのインデックスタイプを構成する必要があります。

なし。

FieldName

String

はい

いいえ

検索インデックス内のフィールドの名前。 この名前は列名とも呼ばれます。

検索インデックスのフィールドは、プライマリキー列または属性列にすることができます。

FieldType

String

はい

いいえ

フィールドのデータ型。

FieldType.XXX 形式でデータ型を指定します。

有効な値:

  • FieldType.LONG

  • FieldType.DOUBLE

  • FieldType.BOOLEAN

  • FieldType.KEYWORD

  • FieldType.GEOPOINT

  • FieldType.NESTED

詳細については、「データ型」をご参照ください。

SubFieldSchemas 構文

"SubFieldSchemas": [
  {
    "Index": Boolean,
    "IsArray": Boolean,
    "Analyzer": String,
    "EnableSortAndAgg": Boolean,
    "Store": Boolean,
    "FieldName": String,
    "FieldType": String
  }
]

SubFieldSchemas プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

Index

Boolean

いいえ

いいえ

インデックス作成を有効にするかどうかを指定します。

有効な値:

  • true

  • false

IsArray

Boolean

いいえ

いいえ

値が配列かどうかを指定します。

有効な値:

  • true

  • false

Analyzer

String

いいえ

いいえ

アナライザーのタイプ。

フィールドがテキストデータ型の場合、このプロパティを指定できます。 フィールドが別のデータ型の場合、デフォルトでは単一単語トークン化がアナライザータイプとして使用されます。

詳細については、「トークン化」をご参照ください。

EnableSortAndAgg

Boolean

いいえ

いいえ

ソートおよび集計機能を有効にするかどうかを指定します。

有効な値:

  • true

  • false

Store

Boolean

いいえ

いいえ

フィールドの値を検索インデックスに格納するかどうかを指定します。

有効な値:

  • true

  • false

Store を true に設定すると、データテーブルをクエリすることなく、検索インデックスからフィールドの値を読み取ることができます。 これにより、クエリのパフォーマンスが向上します。

FieldName

String

はい

いいえ

検索インデックス内のフィールドの名前。 この名前は列名とも呼ばれます。

検索インデックスのフィールドは、プライマリキー列または属性列にすることができます。

FieldType

String

はい

いいえ

フィールドのデータ型。

FieldType.XXX 形式でデータ型を指定します。

詳細については、「データ型」をご参照ください。

戻り値

Fn::GetAtt

IndexName:検索インデックスの名前。

YAML 形式

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  InstanceName:
    Type: String
    Description: テーブルが配置される OTS インスタンスの名前。
    AllowedPattern: '[a-zA-Z][-a-zA-Z0-9]{1,14}[a-zA-Z0-9]'
    Default: mytest
  TableName:
    Type: String
    Description: OTS インスタンスのテーブル名。
    AllowedPattern: '[_a-zA-Z][_a-zA-Z0-9]{0,254}'
    Default: mytest
  SearchIndexName:
    Type: String
    Description: インデックス名。
    Default: searchIndex
  FieldSchemas:
    Type: Json
    Default:
      - FieldName: id
        FieldType: FieldType.LONG
        IsArray: false
        Index: true
        EnableSortAndAgg: true
        Store: true
Resources:
  SearchIndex:
    Type: ALIYUN::OTS::SearchIndex
    Properties:
      IndexName:
        Ref: SearchIndexName
      InstanceName:
        Ref: InstanceName
      TableName:
        Ref: TableName
      FieldSchemas:
        Ref: FieldSchemas
Outputs:
  IndexName:
    Value:
      Fn::GetAtt:
        - SearchIndex
        - IndexName

JSON 形式

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "InstanceName": {
      "Type": "String",
      "Description": "テーブルが配置される OTS インスタンスの名前。",
      "AllowedPattern": "[a-zA-Z][-a-zA-Z0-9]{1,14}[a-zA-Z0-9]",
      "Default": "mytest"
    },
    "TableName": {
      "Type": "String",
      "Description": "OTS インスタンスのテーブル名。",
      "AllowedPattern": "[_a-zA-Z][_a-zA-Z0-9]{0,254}",
      "Default": "mytest"
    },
    "SearchIndexName": {
      "Type": "String",
      "Description": "インデックス名。",
      "Default": "searchIndex"
    },
    "FieldSchemas": {
      "Type": "Json",
      "Default": [
        {
          "FieldName": "id",
          "FieldType": "FieldType.LONG",
          "IsArray": false,
          "Index": true,
          "EnableSortAndAgg": true,
          "Store": true
        }
      ]
    }
  },
  "Resources": {
    "SearchIndex": {
      "Type": "ALIYUN::OTS::SearchIndex",
      "Properties": {
        "IndexName": {
          "Ref": "SearchIndexName"
        },
        "InstanceName": {
          "Ref": "InstanceName"
        },
        "TableName": {
          "Ref": "TableName"
        },
        "FieldSchemas": {
          "Ref": "FieldSchemas"
        }
      }
    }
  },
  "Outputs": {
    "IndexName": {
      "Value": {
        "Fn::GetAtt": [
          "SearchIndex",
          "IndexName"
        ]
      }
    }
  }
}

その他の例については、ots.yml をご覧ください。 例では、ALIYUN::OTS::Instance、ALIYUN::OTS::SearchIndex、ALIYUN::OTS::Table、および ALIYUN::OTS::VpcBinder リソースタイプが使用されています。