全部产品
Search
文档中心

Tablestore:Kueri Rentang

更新时间:Jul 02, 2025

Anda dapat melakukan kueri rentang untuk menanyakan data dalam rentang tertentu. Jika tipe kolom adalah TEXT, Tablestore akan memecah string menjadi token dan mencocokkan token tersebut dengan kata kunci. Sebuah baris memenuhi kondisi kueri jika setidaknya satu token dalam baris cocok dengan rentang kueri.

Prasyarat

Parameter

Parameter

Deskripsi

field_name

Nama kolom yang ingin Anda tanyakan.

range_from

Nilai dari mana kueri dimulai.

range_to

Nilai di mana kueri berakhir.

include_lower

Menentukan apakah akan menyertakan nilai parameter range_from dalam respons. Nilai parameter ini bertipe Boolean.

include_upper

Menentukan apakah akan menyertakan nilai parameter range_to dalam respons. Nilai parameter ini bertipe Boolean.

table_name

Nama tabel data.

index_name

Nama indeks pencarian.

query

Tipe kueri. Atur parameter ini ke RangeQuery.

limit

Jumlah maksimum baris yang ingin Anda dapatkan dari kueri saat ini.

Untuk hanya menanyakan jumlah baris yang memenuhi kondisi kueri tanpa menanyakan data spesifik dari baris, atur parameter limit ke 0.

get_total_count

Menentukan apakah akan mengembalikan jumlah total baris yang memenuhi kondisi kueri. Nilai defaultnya adalah false, yang menunjukkan bahwa jumlah total baris yang memenuhi kondisi kueri tidak dikembalikan.

Jika Anda mengatur parameter ini ke true, performa kueri akan terpengaruh.

columns_to_get

Menentukan apakah akan mengembalikan semua kolom dari setiap baris yang memenuhi kondisi kueri. Anda dapat menentukan bidang return_type dan column_names untuk parameter ini.

  • Jika Anda mengatur bidang return_type ke ColumnReturnType.SPECIFIED, gunakan bidang column_names untuk menentukan kolom yang ingin Anda kembalikan.

  • Jika Anda mengatur bidang return_type ke ColumnReturnType.ALL, semua kolom akan dikembalikan.

  • Jika Anda mengatur bidang return_type ke ColumnReturnType.NONE, hanya kolom kunci utama yang akan dikembalikan.

Contoh

Contoh berikut menunjukkan cara menanyakan baris di mana nilai kolom Col_Keyword berada antara 'key100' dan 'key200'.

  • Lakukan kueri rentang menggunakan Tablestore SDK untuk Python V5.2.1 atau yang lebih baru

    Jika Anda menggunakan Tablestore SDK untuk Python V5.2.1 atau yang lebih baru untuk melakukan kueri rentang, objek SearchResponse dikembalikan secara default. Kode berikut memberikan contoh permintaan:

    query = RangeQuery('Col_Keyword', 'key100', 'key200', include_lower=False, include_upper=False)
    search_response = client.search(
        '<TABLE_NAME>', '<SEARCH_INDEX_NAME>', 
        SearchQuery(query, limit=100, get_total_count=True), 
        ColumnsToGet(return_type=ColumnReturnType.ALL)
    )
    print('request_id : %s' % search_response.request_id)
    print('is_all_succeed : %s' % search_response.is_all_succeed)
    print('total_count : %s' % search_response.total_count)
    print('rows : %s' % search_response.rows)
    
    # # Jika diperlukan halaman dalam, kami sarankan Anda menggunakan parameter next_token karena metode ini tidak memiliki batasan pada kedalaman paging.
    # all_rows = []
    # next_token = None
    # # putaran pertama
    # search_response = client.search(
    #     '<TABLE_NAME>', '<SEARCH_INDEX_NAME>',
    #     SearchQuery(query, next_token=next_token, limit=100, get_total_count=True),
    #     columns_to_get=ColumnsToGet(return_type=ColumnReturnType.ALL))
    # all_rows.extend(search_response.rows)
    # 
    # # loop
    # while search_response.next_token:
    #     search_response = client.search(
    #         '<TABLE_NAME>', '<SEARCH_INDEX_NAME>',
    #         SearchQuery(query, next_token=search_response.next_token, limit=100, get_total_count=True),
    #         columns_to_get=ColumnsToGet(return_type=ColumnReturnType.ALL))
    #     all_rows.extend(search_response.rows)
    # print('Total rows:%s' % len(all_rows))

    Anda dapat menggunakan permintaan sampel berikut untuk mengembalikan hasil tipe Tuple:

    query = RangeQuery('Col_Keyword', 'key100', 'key200', include_lower=False, include_upper=False)
    rows, next_token, total_count, is_all_succeed, agg_results, group_by_results = client.search(
        '<TABLE_NAME>', '<SEARCH_INDEX_NAME>', 
        SearchQuery(query, limit=100, get_total_count=True), 
        ColumnsToGet(return_type=ColumnReturnType.ALL)
    ).v1_response()
  • Lakukan kueri rentang menggunakan Tablestore SDK untuk Python versi sebelum 5.2.1

    Jika Anda menggunakan versi Tablestore SDK untuk Python sebelum 5.2.1 untuk melakukan kueri rentang, hasil tipe TUPLE dikembalikan secara default. Contoh kode berikut memberikan contoh permintaan:

    query = RangeQuery('Col_Keyword', 'key100', 'key200', include_lower=False, include_upper=False)
    rows, next_token, total_count, is_all_succeed = client.search(
        '<TABLE_NAME>', '<SEARCH_INDEX_NAME>', 
        SearchQuery(query, limit=100, get_total_count=True), 
        ColumnsToGet(return_type=ColumnReturnType.ALL)
    )

FAQ

Referensi

  • Ketika 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 geo, kueri Boolean, KNN vector query, kueri nested, dan kueri exists. Anda dapat menggunakan metode kueri yang disediakan oleh indeks pencarian untuk menanyakan data dari berbagai dimensi sesuai dengan kebutuhan bisnis Anda.

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

    Anda dapat menggunakan fitur collapse (distinct) untuk meruntuhkan set hasil berdasarkan kolom tertentu. Dengan cara ini, data dari tipe yang ditentukan muncul hanya 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. Misalnya, Anda dapat memperoleh nilai minimum dan maksimum, jumlah, dan jumlah total baris. Untuk informasi lebih lanjut, lihat Agregasi dan SQL query.

  • 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.