全部产品
Search
文档中心

Tablestore:Collapse (distinct)

更新时间:Jul 02, 2025

Gunakan fitur collapse (distinct) untuk menggabungkan set hasil berdasarkan kolom tertentu saat hasil kueri mencakup sejumlah besar data dari tipe tertentu. Data dari tipe tersebut hanya ditampilkan sekali dalam hasil kueri, memastikan keragaman jenis hasil.

Prasyarat

Catatan penggunaan

  • Jika menggunakan fitur collapse (distinct), paginasi hanya dapat dilakukan dengan menentukan parameter offset dan limit.

  • Jika Anda menggabungkan dan merangkum set hasil secara bersamaan, rangkuman akan diproses terlebih dahulu sebelum penggabungan.

  • Jika Anda menggabungkan hasil kueri, jumlah total hasil yang dikembalikan ditentukan oleh nilai parameter offset dan limit. Maksimum 100.000 hasil dapat dikembalikan.

  • Jumlah total baris dalam respons menunjukkan jumlah baris yang memenuhi kondisi kueri sebelum menerapkan fitur collapse (distinct). Setelah penggabungan set hasil, jumlah total nilai unik tidak dapat dihitung.

Parameter

Parameter

Deskripsi

query

Tipe kueri. Anda dapat menetapkan parameter ini ke tipe kueri apa pun.

collapse

Menggabungkan set hasil berdasarkan kolom yang ditentukan oleh field_name.

field_name: nama kolom berdasarkan mana set hasil digabungkan. Hanya kolom dengan nilai bertipe INTEGER, FLOATING-POINT, dan KEYWORD yang didukung.

offset

Posisi dari mana kueri saat ini dimulai.

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-baris tersebut, tetapkan parameter limit ke 0.

get_total_count

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

table_name

Nama tabel data.

index_name

Nama indeks pencarian.

columns_to_get

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

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

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

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

Contoh

Kode sampel berikut menunjukkan cara menanyakan baris di mana nilai kolom price sama dengan 1000. Dalam contoh ini, set hasil digabungkan berdasarkan nilai kolom product_name.

# Buat kondisi kueri untuk menanyakan semua produk yang nilainya pada kolom price adalah 1000.
query = TermQuery('price', 1000)

# Gabungkan set hasil berdasarkan kolom "product_name".
collapse = Collapse('product_name')
search_response = client.search('<TABLE_NAME>', '<SEARCH_INDEX_NAME>',
                                SearchQuery(query, limit=100, get_total_count = False, collapse_field = collapse),
                                columns_to_get = ColumnsToGet(return_type = ColumnReturnType.ALL_FROM_INDEX))
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)

FAQ

Referensi

  • Saat 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 range, kueri wildcard, kueri geo, kueri Boolean, kueri vektor KNN, kueri nested, dan kueri exists. Gunakan 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 menggunakan fitur pengurutan dan paginasi. Untuk informasi lebih lanjut, lihat Pengurutan dan paginasi.

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

  • Untuk menganalisis data dalam tabel data, gunakan fitur agregasi dari operasi Search atau jalankan pernyataan SQL. Misalnya, Anda bisa mendapatkan nilai minimum dan maksimum, jumlah, serta jumlah total baris. Untuk informasi lebih lanjut, lihat Agregasi dan Kueri SQL.

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