全部产品
Search
文档中心

Tablestore:Kueri akhiran

更新时间:Jul 06, 2025

Anda dapat menggunakan kueri akhiran untuk mengkueri data dalam indeks pencarian dengan menentukan kondisi akhiran. Sebagai contoh, Anda dapat mengkueri paket berdasarkan empat digit terakhir nomor ponsel.

Ikhtisar fitur

Kueri akhiran memungkinkan Anda mengkueri data yang diakhiri dengan akhiran tertentu. Saat menggunakan kueri ini, Anda harus menentukan kondisi akhiran.

Kueri akhiran hanya dapat dilakukan pada tipe FuzzyKeyword. Tipe FuzzyKeyword dioptimalkan untuk fitur seperti kueri akhiran, kueri awalan, dan kueri wildcard. Performa kueri tetap stabil tanpa dipengaruhi oleh ukuran data.

Catatan
  • Pengurutan dan agregasi tidak didukung untuk kolom FuzzyKeyword. Jika Anda ingin melakukan pengurutan atau agregasi pada kolom FuzzyKeyword, gunakan fitur kolom virtual dan setel tipe kolom virtual ke Keyword.

  • Untuk mengkueri data tipe Keyword berdasarkan kondisi akhiran, balikkan data saat penulisan dan gunakan kueri awalan untuk mengkueri data.

Operasi API

Anda dapat memanggil operasi Search atau ParallelScan dan menyetel tipe kueri ke SuffixQuery untuk melakukan kueri akhiran.

Parameter

Parameter

Deskripsi

kueri

Tipe kueri. Atur parameter ini ke SuffixQuery.

fieldName

Nama kolom yang ingin Anda cocokkan.

akhiran

Akhiran.

getTotalCount

Menentukan apakah akan mengembalikan jumlah total baris yang memenuhi kondisi kueri. Nilai default dari parameter ini adalah false, yang menentukan bahwa jumlah total baris yang memenuhi kondisi kueri tidak dikembalikan.

Jika Anda menyetel parameter ini ke true, performa kueri akan terganggu.

bobot

Bobot yang ingin Anda tetapkan pada kolom yang ingin Anda kueri untuk menghitung skor relevansi kata kunci berbasis BM25. Parameter ini digunakan dalam skenario pencarian teks lengkap. Jika Anda menentukan bobot lebih tinggi untuk kolom yang ingin Anda kueri, skor relevansi kata kunci berbasis BM25 untuk kolom tersebut lebih tinggi. Nilai parameter ini adalah angka floating-point positif.

Parameter ini tidak memengaruhi jumlah baris yang dikembalikan. Namun, parameter ini memengaruhi skor relevansi kata kunci berbasis BM25 dari hasil kueri.

tableName

Nama tabel data.

indexName

Nama indeks pencarian.

columnsToGet

Menentukan apakah akan mengembalikan semua kolom setiap baris yang memenuhi kondisi kueri. Anda dapat mengonfigurasi bidang returnAll dan columns untuk parameter ini.

Nilai default dari bidang returnAll adalah false, yang menentukan bahwa tidak semua kolom dikembalikan. Dalam hal ini, Anda dapat menggunakan bidang columns untuk menentukan kolom yang ingin Anda kembalikan. Jika Anda tidak menentukan kolom yang ingin Anda kembalikan, hanya kolom kunci utama yang dikembalikan.

Jika Anda menyetel bidang returnAll ke true, semua kolom dikembalikan.

Metode

Anda dapat menggunakan konsol Tablestore atau SDK Tablestore untuk melakukan kueri akhiran. Pastikan langkah-langkah persiapan berikut telah dilakukan:

Gunakan Konsol Tablestore

  1. Buka tab Indexes.

    1. Masuk ke konsol Tablestore.

    2. Di bilah navigasi atas, pilih grup sumber daya dan wilayah.

    3. Di halaman Overview, klik nama instance yang ingin Anda kelola atau klik Manage Instance di kolom Actions instance.

    4. Di tab Tables dari tab Instance Details, klik nama tabel data atau klik Indexes di kolom Tindakan tabel data.

  2. Di tab Indexes, temukan indeks pencarian yang ingin digunakan dan klik Manage Data di kolom Actions.

    1. Secara default, sistem mengembalikan semua kolom atribut. Untuk mengembalikan kolom atribut tertentu, matikan All Columns dan tentukan kolom atribut yang ingin dikembalikan. Pisahkan beberapa kolom atribut dengan koma (,).

      Catatan

      Secara default, sistem mengembalikan semua kolom kunci utama tabel data.

    2. Pilih operator logika And, Or, atau Not sesuai kebutuhan bisnis Anda.

      Jika memilih operator logika And, data yang memenuhi kondisi kueri akan dikembalikan. Jika memilih operator Or dan menentukan satu kondisi kueri, data yang memenuhi kondisi tersebut akan dikembalikan. Jika memilih operator logika Not, data yang tidak memenuhi kondisi kueri akan dikembalikan.

    3. Pilih kolom tipe FuzzyKeyword dan klik Add.

    4. Pilih SuffixQuery(SuffixQuery) dari daftar drop-down Tipe Kueri dan tentukan nilai kolom.

    5. Secara default, fitur pengurutan dinonaktifkan. Jika ingin mengurutkan hasil kueri berdasarkan kolom tertentu, aktifkan Sort dan tentukan kolom serta urutan pengurutan.

    6. Secara default, fitur agregasi dinonaktifkan. Jika ingin mengumpulkan statistik pada kolom tertentu, aktifkan Collect Statistics, tentukan kolom yang ingin dianalisis, dan konfigurasikan informasi yang diperlukan.

  3. Klik OK.

    Data yang memenuhi kondisi kueri akan ditampilkan dalam urutan yang ditentukan di tab Indexes.

Gunakan SDK Tablestore

Anda dapat menggunakan SDK Tablestore untuk Java untuk melakukan kueri akhiran.

Penting
  • SDK Tablestore untuk Java V5.17.0 atau lebih baru mendukung kueri akhiran.

  • Untuk menggunakan SDK Tablestore untuk melakukan kueri akhiran, Anda harus menginisialisasi klien. Untuk informasi lebih lanjut, lihat Inisialisasi klien Tablestore.

Kode sampel berikut menunjukkan cara mengkueri baris di mana nilai kolom Col_FuzzyKeyword berisi akhiran "hangzhou".

/**
 * Query the rows in which the value of the Col_FuzzyKeyword column contains the "hangzhou" suffix. 
 * @param client
 */
private static void suffixQuery(SyncClient client) {
    SearchQuery searchQuery = new SearchQuery();
    SuffixQuery suffixQuery = new SuffixQuery(); // Set the query type to SuffixQuery. 
    searchQuery.setGetTotalCount(true);
    suffixQuery.setFieldName("Col_FuzzyKeyword");
    suffixQuery.setSuffix("hangzhou");
    searchQuery.setQuery(suffixQuery);
    //searchQuery.setGetTotalCount(true); // Specify that the total number of matched rows is returned. 

    SearchRequest searchRequest = new SearchRequest("<TABLE_NAME>", "<SEARCH_INDEX_NAME>", searchQuery);
    // You can configure the columnsToGet parameter to specify the columns to return or specify that all columns are returned. If you do not configure this parameter, only the primary key columns are returned. 
    SearchRequest.ColumnsToGet columnsToGet = new SearchRequest.ColumnsToGet();
    //columnsToGet.setReturnAll(true); // Specify that all columns are returned. 
    columnsToGet.setColumns(Arrays.asList("Col_FuzzyKeyword")); // Specify the columns that you want to return. 
    searchRequest.setColumnsToGet(columnsToGet);

    SearchResponse resp = client.search(searchRequest);
    //System.out.println("TotalCount: " + resp.getTotalCount()); // Specify that the total number of matched rows instead of the number of returned rows is displayed. 
    System.out.println("Row: " + resp.getRows());
}

Aturan penagihan

Saat menggunakan indeks pencarian untuk mengkueri data, Anda dikenakan biaya untuk throughput baca yang dikonsumsi. Untuk informasi lebih lanjut, lihat Item yang dapat ditagih dari indeks pencarian.

FAQ

Referensi