全部产品
Search
文档中心

Tablestore:Tokenisasi

更新时间:Jun 24, 2025

Setelah menentukan metode tokenisasi untuk kolom TEXT, Tablestore akan memecah nilai kolom tersebut menjadi beberapa token berdasarkan metode yang dipilih. Metode tokenisasi tidak dapat diterapkan pada kolom non-TEXT. Kolom TEXT tidak mendukung pengurutan dan agregasi. Untuk melakukan pengurutan atau agregasi pada kolom bertipe TEXT, gunakan fitur kolom virtual dengan tipe Keyword yang dipetakan dari kolom TEXT.

Informasi latar belakang

Dalam banyak kasus, Anda dapat menggunakan kueri cocok (MatchQuery) dan kueri frasa cocok (MatchPhraseQuery) untuk menanyai kolom bertipe TEXT. Selain itu, Anda juga dapat menggunakan kueri tepat (TermQuery), kueri multi-tepat (TermsQuery), kueri awalan (PrefixQuery), dan kueri wildcard (WildcardQuery) sesuai kebutuhan bisnis Anda.

Metode tokenisasi

Metode tokenisasi yang didukung meliputi: tokenisasi kata tunggal, tokenisasi pembatas, tokenisasi berbasis unit semantik minimum, tokenisasi berbasis unit semantik maksimum, dan tokenisasi fuzzy.

Tokenisasi kata tunggal (SingleWord)

Metode ini berlaku untuk semua bahasa alami seperti Cina, Inggris, dan Jepang. Secara default, metode tokenisasi untuk kolom TEXT adalah tokenisasi kata tunggal.

Setelah menentukan tokenisasi kata tunggal untuk kolom TEXT, Tablestore melakukan tokenisasi berdasarkan aturan berikut:

  • Teks Cina dipecah berdasarkan setiap karakter Cina. Contohnya, "杭州" dipecah menjadi "杭" dan "州". Anda dapat menggunakan kueri cocok (MatchQuery) atau kueri frasa cocok (MatchPhraseQuery) dengan kata kunci "杭" untuk menanyai baris yang mengandung "杭州".

  • Huruf atau angka dipecah berdasarkan spasi atau tanda baca.

    • Jika parameter caseSensitive diatur ke false, token tidak peka huruf besar/kecil. Tablestore mengonversi semua huruf menjadi huruf kecil untuk token dan menyimpannya.

      Contohnya, "Hang Zhou" dipecah menjadi "hang" dan "zhou". Anda dapat menggunakan kueri cocok (MatchQuery) atau kueri frasa cocok (MatchPhraseQuery) dengan kata kunci "hang", "HANG", atau "Hang" untuk menanyai baris yang mengandung "Hang Zhou".

    • Jika parameter caseSensitive diatur ke true, token peka huruf besar/kecil. Tablestore menyimpan token secara peka huruf besar/kecil.

      Contohnya, "Hang Zhou" dipecah menjadi "Hang" dan "Zhou". Anda dapat menggunakan kueri cocok (MatchQuery) atau kueri frasa cocok (MatchPhraseQuery) dengan kata kunci "Hang" atau "Zhou" untuk menanyai baris yang mengandung "Hang Zhou".

  • Karakter alfanumerik seperti nomor model juga dipecah oleh spasi atau tanda baca. Namun, karakter ini tidak dapat dipecah menjadi kata-kata lebih kecil secara default. Contohnya, "iphone6" hanya dapat dipecah menjadi "iphone6". Saat menggunakan kueri cocok (MatchQuery) atau kueri frasa cocok (MatchPhraseQuery), Anda harus menentukan "iphone6" sebagai kata kunci. Tidak ada hasil yang dikembalikan jika Anda menentukan "iphone" sebagai kata kunci.

    Anda dapat mengatur parameter delimitWord ke true untuk memisahkan huruf dari angka. Dengan cara ini, "iphone6" dipecah menjadi "iphone" dan "6". Anda dapat menggunakan kueri cocok (MatchQuery) atau kueri frasa cocok (MatchPhraseQuery) dengan kata kunci "iphone" atau "6" untuk mencocokkan baris yang mengandung "iphone6".

Tabel berikut menjelaskan parameter untuk tokenisasi kata tunggal.

Parameter

Deskripsi

caseSensitive

Menentukan apakah akan mengaktifkan sensitivitas huruf besar/kecil. Nilai default: false. Nilai false menentukan bahwa semua huruf dikonversi menjadi huruf kecil.

Jika Anda tidak ingin Tablestore mengonversi huruf menjadi huruf kecil, atur parameter ini ke true.

delimitWord

Menentukan apakah akan memecah karakter alfanumerik. Nilai default: false. Nilai false menentukan bahwa karakter alfanumerik tidak dipecah menjadi kata-kata lebih kecil.

Anda dapat mengatur parameter delimitWord ke true untuk memisahkan huruf dari angka. Dengan cara ini, "iphone6" dipecah menjadi "iphone" dan "6".

Tokenisasi pembatas (Split)

Tablestore menyediakan tokenisasi berbasis kamus umum. Namun, industri tertentu memerlukan kamus kustom untuk tokenisasi. Untuk memenuhi kebutuhan ini, Tablestore menyediakan tokenisasi pembatas. Anda dapat melakukan tokenisasi menggunakan metode kustom, menerapkan tokenisasi pembatas, dan kemudian menulis data ke Tablestore.

Tokenisasi pembatas berlaku untuk semua bahasa alami, seperti Cina, Inggris, dan Jepang.

Setelah Anda menentukan tokenisasi pembatas untuk kolom TEXT, Tablestore memecah nilai kolom berdasarkan pembatas yang ditentukan. Contohnya, jika nilai kolom adalah "badminton,ping pong,rap" dan Anda mengatur parameter pembatas ke koma (,), nilai tersebut dipecah menjadi "badminton", "ping pong", dan "rap" dan kolom tersebut diindeks. Saat Anda menggunakan kueri cocok (MatchQuery) atau kueri frasa cocok (MatchPhraseQuery) untuk menanyai "badminton", "ping pong", "rap", atau "badminton,ping pong", baris tersebut dapat diperoleh.

Tabel berikut menjelaskan parameter untuk tokenisasi pembatas.

Parameter

Deskripsi

caseSensitive

Menentukan apakah akan mengaktifkan sensitivitas huruf besar/kecil. Nilai default: false. Jika Anda mengatur parameter ini ke false, semua huruf dikonversi menjadi huruf kecil.

Jika Anda tidak ingin Tablestore mengonversi huruf menjadi huruf kecil, atur parameter ini ke true.

null

Tablestore SDK for Java V5.17.2 atau lebih baru mendukung parameter ini.

delimiter

Pembatas. Secara default, nilainya adalah karakter spasi. Anda dapat menentukan pembatas kustom.

  • Saat Anda membuat indeks pencarian, pembatas yang Anda tentukan untuk tokenisasi kolom harus sama dengan pembatas yang termasuk dalam nilai kolom di tabel data. Jika tidak, data mungkin tidak diperoleh.

  • Jika pembatas kustom adalah karakter khusus, seperti pagar (#) atau tilde (~), gabungkan pembatas menggunakan karakter escape (\). Contoh: \#.

Tokenisasi berbasis unit semantik minimum (MinWord)

Metode ini berlaku untuk bahasa Cina dalam skenario pencarian teks lengkap.

Setelah menentukan tokenisasi berbasis unit semantik minimum sebagai metode tokenisasi untuk kolom TEXT, Tablestore memecah nilai kolom TEXT menjadi jumlah unit semantik minimum saat melakukan kueri.

Tokenisasi berbasis unit semantik maksimum (MaxWord)

Metode ini berlaku untuk bahasa Cina dalam skenario pencarian teks lengkap.

Setelah menentukan tokenisasi berbasis unit semantik maksimum sebagai metode tokenisasi untuk kolom TEXT, Tablestore memecah nilai kolom TEXT menjadi jumlah unit semantik maksimum saat melakukan kueri. Namun, unit semantik yang berbeda mungkin mengandung karakter yang sama. Total panjang token lebih panjang daripada panjang teks asli, sehingga volume data indeks meningkat.

Metode ini dapat menghasilkan lebih banyak token dan meningkatkan probabilitas bahwa baris-baris tersebut cocok. Namun, ukuran indeks sangat meningkat. Anda dapat menggunakan kueri frasa cocok (MatchPhraseQuery) saat menentukan tokenisasi berbasis unit semantik maksimum sebagai metode tokenisasi. Kueri cocok (MatchQuery) lebih cocok untuk metode ini. Jika Anda menggunakan kueri frasa cocok bersama dengan metode ini, data mungkin tidak diperoleh karena token yang tumpang tindih akibat kata kunci juga dipecah berdasarkan tokenisasi berbasis unit semantik maksimum.

Tokenisasi fuzzy

Metode ini berlaku untuk semua bahasa alami seperti Cina, Inggris, dan Jepang dalam skenario yang melibatkan konten teks pendek, seperti judul, nama film, judul buku, nama file, dan nama direktori.

Anda dapat menggunakan tokenisasi fuzzy bersama dengan kueri frasa cocok untuk mengembalikan hasil kueri dengan latensi rendah. Kombinasi tokenisasi fuzzy dan kueri frasa cocok lebih unggul daripada kueri wildcard (WildcardQuery). Namun, ukuran indeks sangat meningkat.

Setelah menentukan tokenisasi fuzzy sebagai metode tokenisasi untuk kolom TEXT, Tablestore melakukan tokenisasi menggunakan n-gram. Jumlah karakter dalam token berkisar dari nilai parameter minChars hingga nilai parameter maxChars. Contohnya, metode ini digunakan untuk mengisi daftar drop-down.

null

Untuk melakukan kueri fuzzy, Anda harus menggunakan kueri frasa cocok (MatchPhraseQuery) pada kolom yang menggunakan tokenisasi fuzzy. Jika Anda memiliki persyaratan kueri tambahan pada kolom, gunakan fitur kolom virtual. Untuk informasi lebih lanjut tentang fitur kolom virtual, lihat Kolom Virtual.

  • Batasan

    • Anda dapat menggunakan tokenisasi fuzzy untuk memecah nilai kolom TEXT yang panjangnya kurang dari atau sama dengan 1.024 karakter. Jika nilai kolom TEXT melebihi 1.024 karakter, Tablestore memotong dan membuang karakter yang berlebih, hanya memecah 1.024 karakter pertama.

    • Untuk mencegah peningkatan data indeks yang berlebihan, selisih antara nilai parameter maxChars dan minChars tidak boleh melebihi 6.

  • Parameter

    Parameter

    Deskripsi

    minChars

    Jumlah minimum karakter untuk sebuah token. Nilai default: 1.

    maxChars

    Jumlah maksimum karakter untuk sebuah token. Nilai default: 7.

    caseSensitive

    Menentukan apakah akan mengaktifkan sensitivitas huruf besar/kecil. Nilai default: false. Jika Anda mengatur parameter ini ke false, semua huruf dikonversi menjadi huruf kecil.

    Jika Anda tidak ingin Tablestore mengonversi huruf menjadi huruf kecil, atur parameter ini ke true.

    null

    Tablestore SDK for Java V5.17.2 atau lebih baru mendukung parameter ini.

Perbandingan

Tabel berikut membandingkan metode tokenisasi.

Item

Tokenisasi kata tunggal

Tokenisasi pembatas

Tokenisasi berbasis unit semantik minimum

Tokenisasi berbasis unit semantik maksimum

Tokenisasi fuzzy

Peningkatan indeks

Kecil

Kecil

Kecil

Sedang

Besar

Relevansi

Lemah

Lemah

Sedang

Cukup kuat

Cukup kuat

Bahasa yang berlaku

Semua

Semua

Cina

Cina

Semua

Batas panjang

Tidak ada

Tidak ada

Tidak ada

Tidak ada

1.024 karakter

Tingkat recall

Tinggi

Rendah

Rendah

Sedang

Tinggi