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
caseSensitivediatur 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
caseSensitivediatur 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.
|
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.
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.
nullTablestore 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 |