全部产品
Search
文档中心

Tablestore:Kueri Rentang

更新时间:Jul 06, 2025

Anda dapat menggunakan kueri rentang untuk menanyakan data dalam rentang tertentu. Jika tipe kolom yang ingin Anda tanyakan adalah TEXT, nilai-nilai kolom tersebut akan di-tokenisasi. Sebuah baris memenuhi kondisi kueri jika setidaknya salah satu token dalam baris cocok dengan rentang kueri.

Operasi API

Anda dapat memanggil operasi Search atau ParallelScan, serta mengatur tipe kueri menjadi RangeQuery untuk menjalankan kueri rentang.

Parameter

Parameter

Deskripsi

fieldName

Nama kolom yang ingin Anda cocokkan.

from

Nilai dari mana kueri dimulai.

Saat menentukan kondisi rentang, Anda dapat menggunakan greaterThan untuk menentukan tanda lebih besar dari (>) dan greaterThanOrEqual untuk menentukan tanda lebih besar dari atau sama dengan (≥).

to

Nilai pada saat kueri berakhir.

Saat menentukan kondisi rentang, Anda dapat menggunakan lessThan untuk menentukan tanda kurang dari (<) dan lessThanOrEqual untuk menentukan tanda kurang dari atau sama dengan (≤).

includeLower

Menentukan apakah akan menyertakan nilai parameter from dalam respons. Tipe: BOOLEAN.

includeUpper

Menentukan apakah akan menyertakan nilai parameter to dalam respons. Tipe: BOOLEAN.

query

Tipe kueri. Atur parameter query ke RangeQuery.

sort

Metode pengurutan. Untuk informasi lebih lanjut, lihat Melakukan pengurutan dan paging.

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 mengatur parameter ini ke true, performa kueri akan terpengaruh.

tableName

Nama tabel data.

indexName

Nama indeks pencarian.

columnsToGet

Menentukan apakah akan mengembalikan semua kolom dari setiap baris yang memenuhi kondisi kueri. Anda dapat menentukan 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 mengatur bidang returnAll ke true, semua kolom dikembalikan.

Metode

Anda dapat menggunakan konsol Tablestore, CLI Tablestore, atau SDK Tablestore untuk menjalankan kueri rentang. Pastikan langkah-langkah persiapan berikut telah dilakukan sebelum melaksanakan kueri:

Gunakan konsol Tablestore

  1. Pergi ke 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 Actions tabel data.

  2. Di tab Indexes, temukan indeks pencarian yang ingin Anda gunakan untuk menanyakan data dan klik Manage Data di kolom Actions.

  3. Di kotak dialog Search, tentukan kondisi kueri.

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

      Catatan

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

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

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

    3. Pilih kolom dan klik Add.

    4. Atur parameter Query Type ke RangeQuery(RangeQuery) dan tentukan rentang yang ingin Anda tanyakan.

      Rentang merupakan interval tertutup-kiri, terbuka-kanan. Tentukan rentang sesuai kebutuhan bisnis Anda.

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

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

  4. Klik OK.

  5. Data yang memenuhi kondisi kueri ditampilkan secara terurut di tab Indexes.

Gunakan CLI Tablestore

Anda dapat menjalankan perintah search di CLI Tablestore untuk menanyakan data menggunakan indeks pencarian. Untuk informasi lebih lanjut, lihat Indeks pencarian.

  1. Jalankan perintah search untuk menggunakan indeks pencarian search_index dalam menanyakan data dan mengembalikan semua kolom terindeks dari setiap baris yang memenuhi kondisi kueri.

    search -n search_index --return_all_indexed
  2. Masukkan kondisi kueri sesuai prompt sistem:

    {
        "Offset": -1,
        "Limit": 10,
        "Collapse": null,
        "Sort": null,
        "GetTotalCount": true,
        "Token": null,
        "Query": {
            "Name": "RangeQuery",
            "Query": {
                "FieldName": "col_long",
                "From": 1,
                "To": 100,
                "IncludeLower": true,
                "IncludeUpper": false
            }
        }
    }

Gunakan SDK Tablestore

Anda dapat menjalankan kueri rentang menggunakan SDK Tablestore berikut: Tablestore SDK for Java, Tablestore SDK for Go, Tablestore SDK for Python, Tablestore SDK for Node.js, Tablestore SDK for .NET, dan Tablestore SDK for PHP. Dalam contoh ini, Tablestore SDK for Java digunakan.

private static void rangeQuery(SyncClient client) {
    SearchQuery searchQuery = new SearchQuery();
    RangeQuery rangeQuery = new RangeQuery(); // Setel tipe kueri ke RangeQuery.
    
    /**
     * Contoh 1: Kueri baris di mana nilai kolom Col_Long lebih besar dari 3.
     */
    rangeQuery.setFieldName("Col_Long");
    rangeQuery.greaterThan(ColumnValue.fromLong(3));
    
    /**
     * //Contoh 2: Kueri baris di mana nilai kolom Col_Date_String lebih besar dari atau sama dengan 2020-01-01 10:55:12 dan kurang dari 2021-03-03 08:20:50.
     * //Tipe kolom Col_Date_String adalah String di tabel data dan Date di indeks pencarian tempat tabel data dipetakan. Nilai-nilai kolom Col_Date_String di indeks pencarian berada dalam format yyyy-MM-dd HH:mm:ss.
     * rangeQuery.setFieldName("Col_Date_String");
     * rangeQuery.greaterThanOrEqual(ColumnValue.fromString("2020-01-01 10:55:12"));
     * rangeQuery.lessThan(ColumnValue.fromString("2021-03-03 08:20:50"));
     */
     
    /**
     * //Contoh 3: Kueri baris di mana nilai kolom Col_Date_Long lebih besar dari 1731036722.
     * //Tipe kolom Col_Date_Long adalah Integer di tabel data dan Date di indeks pencarian tempat tabel data dipetakan. Nilai-nilai kolom Col_Date_Long di indeks pencarian adalah timestamp dalam detik.
     * rangeQuery.setFieldName("Col_Date_Long");
     * rangeQuery.greaterThan(ColumnValue.fromLong(1731036722));
     */
     
    searchQuery.setQuery(rangeQuery);
    searchQuery.setGetTotalCount(true); // Tentukan bahwa jumlah total baris yang memenuhi kondisi kueri dikembalikan.
    SearchRequest searchRequest = new SearchRequest("<TABLE_NAME>", "<SEARCH_INDEX_NAME>", searchQuery);
    //Konfigurasikan parameter columnsToGet untuk menentukan bahwa kolom tertentu atau semua kolom dikembalikan. Jika Anda tidak mengonfigurasi parameter columnsToGet, hanya kolom kunci utama yang dikembalikan.
    //SearchRequest.ColumnsToGet columnsToGet = new SearchRequest.ColumnsToGet();
    // Tentukan bahwa semua kolom dikembalikan.
    //columnsToGet.setReturnAll(true);
    // Tentukan bahwa kolom tertentu dikembalikan.
    //columnsToGet.setColumns(Arrays.asList("ColName1","ColName2"));
    //searchRequest.setColumnsToGet(columnsToGet);
    SearchResponse resp = client.search(searchRequest);
    
    //System.out.println("TotalCount: " + resp.getTotalCount());// Tampilkan jumlah total baris yang cocok alih-alih jumlah baris yang dikembalikan.
    System.out.println("Row: " + resp.getRows());
}

Aturan penagihan

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

FAQ

Referensi

  • Saat Anda menggunakan indeks pencarian untuk menanyakan data, Anda dapat menggunakan metode kueri berikut: kueri tepat, kueri terms, kueri match all, kueri match, kueri match phrase, kueri prefix, kueri rentang, kueri wildcard, kueri fuzzy, kueri Boolean, kueri geo, kueri nested, kueri vektor KNN, dan kueri exists. Anda dapat memilih metode kueri berdasarkan kebutuhan bisnis Anda untuk menanyakan data dari berbagai dimensi.

    Anda dapat mengurutkan atau membagi halaman baris yang memenuhi kondisi kueri dengan menggunakan fitur pengurutan dan paginasi. Untuk informasi lebih lanjut, lihat Melakukan pengurutan dan paginasi.

    Anda dapat menggunakan fitur collapse (distinct) untuk menggabungkan set hasil berdasarkan kolom tertentu. Dengan cara ini, data dari tipe yang ditentukan hanya muncul sekali dalam hasil kueri. Untuk informasi lebih lanjut, lihat Collapse (distinct).

  • Jika Anda ingin menganalisis data dalam tabel data, Anda dapat menggunakan fitur agregasi operasi Search atau menjalankan pernyataan SQL. Sebagai contoh, Anda bisa mendapatkan nilai minimum dan maksimum, jumlah total, dan jumlah baris. Untuk informasi lebih lanjut, lihat Agregasi dan Kueri SQL.

  • Jika Anda ingin mendapatkan semua baris yang memenuhi kondisi kueri tanpa perlu mengurutkan baris, Anda dapat memanggil operasi ParallelScan dan ComputeSplits untuk menggunakan fitur pemindaian paralel. Untuk informasi lebih lanjut, lihat Pemindaian paralel.