全部产品
Search
文档中心

Resource Orchestration Service:ALIYUN::OTS::SearchIndex

更新时间:Jun 26, 2025

ALIYUN::OTS::SearchIndex digunakan untuk membuat indeks pencarian pada tabel data. Anda dapat membuat beberapa indeks pencarian untuk satu tabel data.

Sintaksis

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

Properti

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Kendala

IndexName

String

Ya

Tidak

Nama indeks pencarian.

Tidak ada.

InstanceName

String

Ya

Tidak

Nama instance tempat tabel data berada.

Tidak ada.

TableName

String

Ya

Tidak

Nama tabel data.

Tidak ada.

FieldSchemas

List

Ya

Tidak

Daftar skema bidang.

Tidak ada.

IndexSort

Map

Tidak

Tidak

Pengaturan pra-pengurutan indeks pencarian. Secara default, data diurutkan berdasarkan kunci utama.

Anda dapat melewati pengaturan pra-pengurutan untuk indeks pencarian yang berisi bidang tipe data bersarang.

Untuk informasi lebih lanjut, lihat Properti IndexSort.

IndexSetting

Map

Tidak

Tidak

Pengaturan indeks pencarian.

Untuk informasi lebih lanjut, lihat Properti IndexSetting.

Sintaksis IndexSort

"IndexSort": {
  "Sorters": List
}

Properti IndexSort

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Kendala

Sorters

List

Ya

Tidak

Metode pra-pengurutan.

Anda dapat menggunakan metode PrimaryKeySort dan FieldSort.

Untuk informasi lebih lanjut, lihat Pengurutan dan paginasi dan Properti Sorters.

Sintaksis Sorters

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

Properti Sorters

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Kendala

FieldSort

Map

Tidak

Tidak

Menentukan untuk mengurutkan data berdasarkan nilai bidang.

Untuk informasi lebih lanjut, lihat Properti FieldSort.

PrimaryKeySort

Map

Tidak

Tidak

Menentukan untuk mengurutkan data berdasarkan kunci utama.

Untuk informasi lebih lanjut, lihat Properti PrimaryKeySort.

ScoreSort

Map

Tidak

Tidak

Menentukan untuk mengurutkan data berdasarkan skor relevansi kata kunci berbasis BM25. ScoreSort cocok untuk skenario relevansi seperti pencarian teks lengkap.

Anda harus mengonfigurasi ScoreSort untuk mengurutkan data yang cocok berdasarkan skor relevansi kata kunci. Jika tidak, data yang cocok akan diurutkan berdasarkan pengaturan pra-pengurutan yang ditentukan oleh IndexSort.

Untuk informasi lebih lanjut, lihat Properti ScoreSort.

GeoDistanceSort

Map

Tidak

Tidak

Menentukan untuk mengurutkan data berdasarkan lokasi geografis.

Untuk informasi lebih lanjut, lihat Properti GeoDistanceSort.

Sintaksis FieldSort

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

Properti FieldSort

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Kendala

SortMode

String

Tidak

Tidak

Metode pengurutan yang digunakan ketika bidang memiliki beberapa nilai.

Tidak ada.

SortOrder

String

Tidak

Tidak

Urutan pengurutan.

Nilai valid:

  • ASC (default): urutan menaik

  • DESC: urutan menurun

FieldName

String

Ya

Tidak

Nama bidang yang digunakan untuk mengurutkan data.

Tidak ada.

Sintaksis PrimaryKeySort

"PrimaryKeySort": {
  "SortOrder": String
}

Properti PrimaryKeySort

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Kendala

SortOrder

String

Tidak

Tidak

Urutan pengurutan.

Nilai valid:

  • ASC (default): urutan menaik

  • DESC: urutan menurun

Sintaksis ScoreSort

"ScoreSort": {
  "SortOrder": String
}

Properti ScoreSort

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Kendala

SortOrder

String

Tidak

Tidak

Urutan pengurutan.

Nilai valid:

  • ASC (default): urutan menaik

  • DESC: urutan menurun

Sintaksis GeoDistanceSort

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

Properti GeoDistanceSort

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Kendala

Points

List

Ya

Tidak

Koordinat titik-titik yang membentuk poligon. Anda dapat menentukan poligon dengan menggunakan beberapa koordinat.

Tentukan koordinat dalam format latitude,longitude. Nilai valid untuk latitude: [-90,+90]. Nilai valid untuk longitude: [-180,+180]. Contoh nilai Points: 35.8,-45.91.

SortMode

String

Tidak

Tidak

Metode pengurutan yang digunakan ketika bidang memiliki beberapa nilai.

Tidak ada.

SortOrder

String

Tidak

Tidak

Urutan pengurutan.

Nilai valid:

  • ASC (default): urutan menaik

  • DESC: urutan menurun

FieldName

String

Ya

Tidak

Nama bidang yang digunakan untuk mengurutkan data.

Tidak ada.

Sintaksis IndexSetting

"IndexSetting": {
  "RoutingFields": List
}

Properti IndexSetting

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Kendala

RoutingFields

List

Tidak

Tidak

Bidang routing kustom.

Anda dapat menentukan beberapa kolom kunci utama sebagai bidang routing. Tablestore mendistribusikan data yang ditulis ke indeks pencarian ke partisi berbeda berdasarkan bidang routing yang ditentukan. Data dengan nilai bidang routing yang sama didistribusikan ke partisi yang sama.

Sintaksis FieldSchemas

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

Properti FieldSchemas

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Kendala

Index

Boolean

Tidak

Tidak

Menentukan apakah akan mengaktifkan pengindeksan.

Nilai valid:

  • true

  • false

IsArray

Boolean

Tidak

Tidak

Menentukan apakah nilainya adalah array.

Nilai valid:

  • true

  • false

Analyzer

String

Tidak

Tidak

Jenis analyzer.

Jika bidang bertipe data teks, Anda dapat menentukan properti ini. Jika bidang bertipe data lain, tokenisasi kata tunggal digunakan sebagai jenis analyzer secara default.

Untuk informasi lebih lanjut, lihat Tokenisasi.

EnableSortAndAgg

Boolean

Tidak

Tidak

Menentukan apakah akan mengaktifkan fitur pengurutan dan agregasi.

Nilai valid:

  • true

  • false

Store

Boolean

Tidak

Tidak

Menentukan apakah akan menyimpan nilai bidang di indeks pencarian.

Nilai valid:

  • true

  • false

Jika Anda mengatur Store ke true, Anda dapat membaca nilai bidang dari indeks pencarian tanpa perlu menanyakan tabel data. Ini meningkatkan kinerja kueri.

SubFieldSchemas

List

Tidak

Tidak

Daftar skema bidang untuk subbidang. Jika bidang bertipe data bersarang, Anda harus menentukan properti ini untuk mengonfigurasi tipe indeks subbidang dalam bidang bersarang.

Tidak ada.

FieldName

String

Ya

Tidak

Nama bidang dalam indeks pencarian. Nama tersebut juga disebut nama kolom.

Bidang dalam indeks pencarian dapat berupa kolom kunci utama atau kolom atribut.

FieldType

String

Ya

Tidak

Tipe data bidang.

Tentukan tipe data dalam format FieldType.XXX.

Nilai valid:

  • FieldType.LONG

  • FieldType.DOUBLE

  • FieldType.BOOLEAN

  • FieldType.KEYWORD

  • FieldType.GEOPOINT

  • FieldType.NESTED

Untuk informasi lebih lanjut, lihat Tipe data.

Sintaksis SubFieldSchemas

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

Properti SubFieldSchemas

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Kendala

Index

Boolean

Tidak

Tidak

Menentukan apakah akan mengaktifkan pengindeksan.

Nilai valid:

  • true

  • false

IsArray

Boolean

Tidak

Tidak

Menentukan apakah nilainya adalah array.

Nilai valid:

  • true

  • false

Analyzer

String

Tidak

Tidak

Jenis analyzer.

Jika bidang bertipe data teks, Anda dapat menentukan properti ini. Jika bidang bertipe data lain, tokenisasi kata tunggal digunakan sebagai jenis analyzer secara default.

Untuk informasi lebih lanjut, lihat Tokenisasi.

EnableSortAndAgg

Boolean

Tidak

Tidak

Menentukan apakah akan mengaktifkan fitur pengurutan dan agregasi.

Nilai valid:

  • true

  • false

Store

Boolean

Tidak

Tidak

Menentukan apakah akan menyimpan nilai bidang di indeks pencarian.

Nilai valid:

  • true

  • false

Jika Anda mengatur Store ke true, Anda dapat membaca nilai bidang dari indeks pencarian tanpa perlu menanyakan tabel data. Ini meningkatkan kinerja kueri.

FieldName

String

Ya

Tidak

Nama bidang dalam indeks pencarian. Nama tersebut juga disebut nama kolom.

Bidang dalam indeks pencarian dapat berupa kolom kunci utama atau kolom atribut.

FieldType

String

Ya

Tidak

Tipe data bidang.

Tentukan tipe data dalam format FieldType.XXX.

Untuk informasi lebih lanjut, lihat Tipe data.

Nilai Pengembalian

Fn::GetAtt

IndexName: Nama indeks pencarian.

Contoh

YAML format

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  InstanceName:
    Type: String
    Description: Nama instance OTS tempat tabel akan berada.
    AllowedPattern: '[a-zA-Z][-a-zA-Z0-9]{1,14}[a-zA-Z0-9]'
    Default: mytest
  TableName:
    Type: String
    Description: Nama tabel instance OTS.
    AllowedPattern: '[_a-zA-Z][_a-zA-Z0-9]{0,254}'
    Default: mytest
  SearchIndexName:
    Type: String
    Description: Nama indeks.
    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 format

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "InstanceName": {
      "Type": "String",
      "Description": "Nama instance OTS tempat tabel akan berada.",
      "AllowedPattern": "[a-zA-Z][-a-zA-Z0-9]{1,14}[a-zA-Z0-9]",
      "Default": "mytest"
    },
    "TableName": {
      "Type": "String",
      "Description": "Nama tabel instance OTS.",
      "AllowedPattern": "[_a-zA-Z][_a-zA-Z0-9]{0,254}",
      "Default": "mytest"
    },
    "SearchIndexName": {
      "Type": "String",
      "Description": "Nama indeks.",
      "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"
        ]
      }
    }
  }
}

Untuk lebih banyak contoh, kunjungi ots.yml. Dalam contoh-contoh tersebut, tipe sumber daya ALIYUN::OTS::Instance, ALIYUN::OTS::SearchIndex, ALIYUN::OTS::Table, dan ALIYUN::OTS::VpcBinder digunakan.