全部产品
Search
文档中心

Tablestore:Tipe data

更新时间:Jun 24, 2025

Sebelum membuat indeks pencarian, Anda harus memahami tipe data yang didukung oleh indeks pencarian serta pemetaan antara tipe data tersebut dan tipe data yang didukung oleh tabel data tempat indeks pencarian dibuat.

Tipe data yang didukung

Indeks pencarian mendukung tipe data dasar seperti Long, Double, Boolean, Keyword, Text, Date, Geopoint, dan Vector, serta tipe data khusus seperti Array dan Nested, dan kolom virtual.

Tipe data dasar

Indeks pencarian mendukung tipe data dasar berikut: Long, Double, Boolean, Keyword, Text, Date, Geopoint, dan Vector. Tabel berikut menjelaskan tipe data dasar tersebut.

Tipe data dasar

Deskripsi

Long

Bilangan bulat panjang 64-bit.

Double

Bilangan floating-point presisi ganda 64-bit.

Boolean

Nilai Boolean.

Keyword

String yang tidak dapat di-tokenisasi.

Text

String atau teks yang dapat di-tokenisasi. Untuk informasi lebih lanjut, lihat Tokenisasi.

Date

Tipe data Date. Anda dapat menentukan format data dari tipe Date. Untuk informasi lebih lanjut, lihat Tipe data Date.

Geopoint

Pasangan koordinat lokasi geografis dalam format latitude,longitude. Nilai valid untuk latitude: [-90,+90]. Nilai valid untuk longitude: [-180,+180]. Contoh: 35.8,-45.91.

Vector

Tipe Vector. Nilai dari field bertipe Vector adalah string dalam format array Float32. Panjang array sama dengan jumlah dimensi dari field tersebut. Sebagai contoh, jumlah dimensi dari string vektor [1, 5.1, 4.7, 0.08] adalah 4.

Tipe Array dan Nested

Selain tipe data dasar seperti Long, Double, Boolean, Keyword, Text, Date, Geopoint, dan Vector, indeks pencarian juga mendukung dua tipe data khusus: Array dan Nested. Tipe data Array cocok untuk menyimpan kumpulan data dengan tipe yang sama, sedangkan tipe data Nested mirip dengan tipe data JSON dan cocok untuk menyimpan data dengan struktur hierarkis. Untuk informasi lebih lanjut, lihat Tipe Data Array dan Nested.

Tipe Array

null
  • Tipe data Array hanya dapat digunakan dalam indeks pencarian. Tabel data tidak mendukung tipe data Array.

  • Anda dapat menggunakan tipe data Array seperti halnya tipe data non-Array. Saat menggunakan field Array untuk mengquery data, baris data akan dikembalikan jika setidaknya salah satu nilai dalam array memenuhi kondisi.

  • Tipe data vector tidak dapat digunakan dalam array.

Tipe data Array adalah tipe data komposit yang dapat digabungkan dengan tipe data primitif seperti Long, Double, Boolean, Keyword, Text, Date, dan Geopoint untuk membentuk struktur data yang kompleks. Sebagai contoh, kombinasi tipe data Long dan tipe data Array digunakan untuk membangun array long. Array long dapat berisi beberapa bilangan bulat panjang. Tipe data Array cocok untuk menyimpan kumpulan data dengan tipe yang sama.

Jika tipe data sebuah field dalam indeks pencarian merupakan kombinasi dari tipe data Array dan tipe data primitif seperti Long atau Double, field dalam tabel data tempat indeks pencarian dibuat harus bertipe String, sementara field dalam indeks pencarian harus bertipe data primitif yang sesuai.

Tabel berikut menjelaskan kombinasi tipe data Array dan tipe data primitif dalam indeks pencarian.

Kombinasi

Deskripsi

Long Array

Array bilangan bulat panjang. Contoh: "[1000, 4, 5555]".

Double Array

Array bilangan floating-point. Contoh: "[3.1415926, 0.99]".

Boolean Array

Array nilai Boolean. Contoh: "[true, false]".

Keyword Array

Array string. Array keyword adalah array JSON. Contoh: "[\"Hangzhou\", \"Xi'an\"]".

Text Array

Array teks. Array teks adalah array JSON. Contoh: "[\"Hangzhou\", \"Xi'an\"]".

Array teks tidak umum digunakan.

Date Array

Array data tanggal. Contoh data tanggal bertipe Integer: "[1218197720123, 1712850436000]". Contoh data tanggal bertipe String: "[\"2024-04-11 23:47:16.854775807\", \"2024-06-11 23:47:16.854775807\"]".

Geopoint Array

Array pasangan koordinat lintang dan bujur. Contoh: "[\"34.2, 43.0\", \"21.4, 45.2\"]".

Tipe Nested

Data bertipe Nested adalah dokumen bersarang. Dokumen bersarang digunakan ketika sebuah baris data (dokumen) berisi beberapa baris anak (dokumen anak). Beberapa baris anak disimpan dalam field bersarang. Tipe data Nested cocok untuk menyimpan data dengan struktur hierarkis.

Anda harus menentukan skema dari baris anak dalam field bersarang. Skema tersebut mencakup field dari baris anak dan properti dari setiap field. Tipe data Nested dapat digunakan untuk menyimpan beberapa nilai, mirip dengan tipe data JSON.

Jika sebuah field dalam indeks pencarian bertipe Nested, field dalam tabel data tempat indeks pencarian dibuat harus bertipe String, dan field dalam indeks pencarian harus bertipe Nested. Anda harus melakukan query bersarang untuk mengquery field bertipe Nested.

Saat menulis data ke sebuah field dalam tabel data yang sesuai dengan field Nested dalam indeks pencarian yang dibuat untuk tabel data, pastikan bahwa field dalam tabel data bertipe JSON Array. Contoh: [{"tagName":"tag1", "score":0.8,"time": 1730690237000 }, {"tagName":"tag2", "score":0.2,"time": 1730691557000}].

null

Anda harus menulis string bertipe JSON Array ke field bersarang, terlepas dari apakah field tersebut hanya berisi satu baris anak.

Field bersarang diklasifikasikan menjadi field bersarang tingkat tunggal dan multi-level. Tabel berikut menjelaskan kedua jenis tersebut.

Tipe

Deskripsi

Field bersarang tingkat tunggal

Field bersarang tingkat tunggal memiliki struktur data sederhana yang hanya berisi satu level. Field bersarang tingkat tunggal cocok untuk skenario di mana struktur data multi-level tidak diperlukan tetapi struktur hierarkis diperlukan. Contoh:

[
    {
        "tagName": "tag1",
        "score": 0.8
    },
    {
        "tagName": "tag2",
        "score": 0.2
    }
]

Field bersarang multi-level

Field bersarang multi-level memiliki struktur data kompleks yang berisi beberapa level. Field bersarang multi-level cocok untuk skenario di mana struktur data kompleks diperlukan untuk menyimpan data terorganisir dari berbagai level dalam modul terpusat. Contoh:

[
    {
        name:"John",
        "age": 20,
        "phone": "1390000****",
        "address": [
            {
                "province": "Zhejiang",
                "city": "Hangzhou",
                "street": "1201 Xingfu Community, Sunshine Avenue"
            }
        ]
    }
]

Kolom virtual

Anda dapat menggunakan fitur kolom virtual dari indeks pencarian untuk mengquery field baru dan data dari tipe field baru tanpa perlu memodifikasi skema penyimpanan dan data dalam tabel Tablestore. Untuk informasi lebih lanjut, lihat Kolom Virtual.

  • Anda dapat mengonfigurasi metode tokenisasi yang berbeda untuk field Text yang dipetakan ke field yang sama dalam sebuah tabel.

    Sebuah kolom String tunggal dapat dipetakan ke beberapa kolom Text dalam indeks pencarian. Kolom Text yang berbeda menggunakan metode tokenisasi yang berbeda untuk memenuhi berbagai kebutuhan bisnis.

  • Akselerasi Query

    Anda tidak perlu membersihkan data atau membuat ulang skema tabel. Cukup petakan kolom yang diperlukan dari tabel ke kolom dalam indeks pencarian. Tipe kolom dapat berbeda antara tabel dan indeks pencarian. Sebagai contoh, Anda dapat memetakan tipe numerik ke tipe Keyword untuk meningkatkan performa kueri tepat, dan memetakan tipe String ke tipe numerik untuk meningkatkan performa kueri rentang.

Pemetaan tipe data

Nilai sebuah field dalam indeks pencarian adalah nilai dari field dengan nama yang sama dalam tabel data tempat indeks pencarian dibuat. Tipe data dari kedua nilai tersebut harus cocok. Tabel berikut menjelaskan aturan kecocokan.

Tipe data field dalam indeks pencarian

Tipe data field dalam tabel data

Long

Integer

Long Array

String

Double

Double

Double Array

String

Boolean

Boolean

Boolean Array

String

Keyword

String

Keyword Array

String

Text

String

Date

Integer dan String

Date Array

String

Geopoint

String

Geopoint Array

String

Vector

String

Nested

String