全部产品
Search
文档中心

Tablestore:Tipe data

更新时间:Dec 10, 2025

Sebelum menggunakan indeks pencarian, Anda perlu memahami tipe data yang didukung serta pemetaannya terhadap tipe data di tabel data Anda.

Deskripsi tipe data

Indeks pencarian menyediakan tipe data primitif, seperti Long, Double, Boolean, Keyword, Text, Date, IP, Geopoint, Vector, dan JSON, serta tipe khusus seperti array, nested, dan kolom virtual.

Penting

Tipe Date pada indeks pencarian didukung mulai Tablestore Java Software Development Kit (SDK) versi 5.13.9 dan seterusnya. Untuk menggunakan tipe Date pada indeks pencarian, pastikan Anda menggunakan versi Java SDK yang sesuai. Untuk informasi selengkapnya mengenai riwayat rilis Java SDK, lihat Java SDK release history.

Tipe data primitif

Indeks pencarian menyediakan tipe data primitif, seperti Long, Double, Boolean, Keyword, Text, Date, IP, Geopoint, Vector, dan JSON. Tabel berikut menjelaskan tipe data tersebut.

Tipe data primitif

Deskripsi

Long

Bilangan bulat panjang 64-bit.

Double

Bilangan titik mengambang presisi ganda 64-bit.

Boolean

Nilai Boolean.

Keyword

String yang tidak ditokenisasi.

FuzzyKeyword

String yang mendukung kueri fuzzy berkinerja-tinggi.

Text

String atau teks yang telah ditokenisasi.

Date

Tipe tanggal dan waktu yang mendukung format tanggal kustom.

IP

Tipe IP yang mendukung alamat IP dalam format IPv4 dan IPv6.

Geopoint

Informasi koordinat untuk suatu titik lokasi. Formatnya adalah latitude,longitude. Latitude ditulis terlebih dahulu, diikuti oleh longitude. Latitude harus berada dalam rentang [-90,+90], dan longitude harus berada dalam rentang [-180,+180]. Contoh: 35.8,-45.91.

Vector

Tipe vektor. Formatnya berupa string dari array Float32. Panjang array sama dengan dimensi bidang tersebut. Misalnya, string vektor [1, 5.1, 4.7, 0.08 ] memiliki empat dimensi.

JSON type

Tipe JSON yang mendukung tipe indeks OBJECT dan NESTED.

Tipe array dan nested

Selain tipe data primitif seperti Long, Double, Boolean, Keyword, Text, Date, Geopoint, dan Vector, indeks pencarian juga menyediakan dua tipe khusus: array dan nested. Tipe array cocok untuk menyimpan serangkaian data dengan tipe yang sama, sedangkan tipe nested cocok untuk menyimpan data dengan struktur hirarkis, mirip dengan JSON. Untuk informasi selengkapnya, lihat Array and nested types.

Tipe Array

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

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

  • Tipe data vektor tidak dapat digunakan dalam array.

Tipe data Array merupakan pengubah yang dapat dikombinasikan dengan tipe data primitif, seperti Long, Double, Boolean, Keyword, Text, Date, IP, dan GeoPoint. Misalnya, jika Anda menggabungkan tipe Array dengan tipe Long, hasilnya adalah array bilangan bulat panjang yang dapat menyimpan beberapa bilangan bulat panjang. Tipe data Array cocok untuk menyimpan serangkaian nilai dengan tipe yang sama.

Jika tipe data suatu bidang dalam indeks pencarian merupakan kombinasi tipe data Array dan tipe data primitif, seperti Long atau Double, maka bidang dalam tabel data tempat indeks pencarian dibuat harus bertipe String, sedangkan bidang dalam indeks pencarian harus bertipe primitif yang sesuai.

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

Tipe Array

Deskripsi

Long Array

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

Double Array

Array bilangan titik mengambang. Contoh: "[3.1415926, 0.99]".

Boolean Array

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

Keyword Array

Array string. Formatnya berupa Data berformat JSON. Contoh: "[\"Hangzhou\", \"Xi'an\"]".

Text Array

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

Array teks jarang digunakan.

Date Array

Array tanggal. Jika tipe tanggal berupa bilangan bulat, formatnya adalah "[1218197720123, 1712850436000]". Jika tipe tanggal berupa string, formatnya adalah "[\"2024-04-11 23:47:16.854775807\", \"2024-06-11 23:47:16.854775807\"]".

IP Array

Array alamat IP. Formatnya berupa array JSON. Contoh: "[\"192,168.1.1\", \"255.255.255.255\"]".

Geopoint Array

Array titik geografis. Contoh: "[\"34.2, 43.0\", \"21.4, 45.2\"]".

Tipe Nested

Data bertipe Nested berupa dokumen bersarang. Dokumen bersarang digunakan ketika satu baris data (dokumen) berisi beberapa baris anak (dokumen anak). Beberapa baris anak disimpan dalam bidang nested. Tipe data Nested cocok untuk menyimpan data yang memiliki struktur hirarkis.

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

Jika suatu bidang dalam indeks pencarian bertipe Nested, maka bidang dalam tabel data tempat indeks pencarian dibuat harus bertipe String, dan bidang dalam indeks pencarian harus bertipe Nested. Anda harus melakukan kueri nested untuk mengkueri bidang bertipe Nested.

Saat menulis data ke tabel data, bidang tabel data yang berkorespondensi dengan bidang nested dalam indeks pencarian harus berupa array objek JSON. Contohnya: [{"tagName":"tag1", "score":0.8,"time": 1730690237000 }, {"tagName":"tag2", "score":0.2,"time": 1730691557000}].

Penting

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

Bidang nested diklasifikasikan menjadi bidang nested tingkat tunggal dan multi-level. Tabel berikut menjelaskan kedua tipe tersebut.

Tipe Penyarangan

Deskripsi

Single-level nested type

Tipe nested tingkat tunggal berisi satu lapis struktur data lainnya. Hal ini menghasilkan struktur sederhana dengan hirarki dasar. Tipe ini cocok untuk skenario yang memerlukan hirarki sederhana tanpa banyak level. Contoh kodenya sebagai berikut:

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

Multi-level nested type

Tipe nested multi-level berisi beberapa lapis struktur data bersarang. Hal ini menghasilkan hirarki yang lebih kompleks. Gunakan tipe ini untuk model data yang memerlukan hirarki kaya serta tingkat modularitas atau organisasi yang tinggi. Contoh kodenya sebagai berikut:

[
    {
        "name": "Zhang San",
        "age": 20,
        "phone": "1390000****",
        "address": [
            {
                "province": "Zhejiang Province",
                "city": "Hangzhou City",
                "street": "No. 1201, Xingfu Community, Sunshine Avenue"
            }
        ]
    }
]

Kolom virtual

Untuk mengkueri bidang baru dengan tipe data baru tanpa mengubah struktur penyimpanan dan data di Tablestore, gunakan kolom virtual dalam indeks pencarian. Untuk informasi selengkapnya, lihat Virtual columns.

Fitur kolom virtual memungkinkan Anda memetakan kolom dari tabel ke kolom virtual dalam indeks pencarian saat membuat indeks tersebut. Tipe kolom virtual baru dapat berbeda dari tipe kolom aslinya di tabel. Hal ini memungkinkan Anda membuat kolom baru tanpa mengubah skema tabel dan datanya. Kolom baru tersebut dapat digunakan untuk mempercepat kueri atau menggunakan pemisah kata yang berbeda.

  • Anda dapat mengonfigurasi metode tokenisasi yang berbeda untuk bidang Text yang dipetakan ke bidang yang sama di tabel.

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

  • Akselerasi kueri

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

Pemetaan tipe data

Nilai suatu bidang dalam indeks pencarian berasal dari nilai bidang yang sesuai di tabel data. Tipe data kedua bidang tersebut harus sesuai. Tabel berikut menjelaskan pemetaan antara tipe data bidang dalam indeks pencarian dan tabel data.

Tipe data bidang indeks pencarian

Tipe data bidang 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, String

Date Array

String

IP

String

IP Array

String

Geopoint

String

Geopoint Array

String

Vector

String

Nested

String

JSON

String