全部产品
Search
文档中心

Tablestore:Collapse (distinct)

更新时间:Jul 06, 2025

Anda dapat menggunakan fitur collapse (distinct) untuk menggabungkan set hasil berdasarkan kolom tertentu ketika hasil kueri mencakup sejumlah besar data dari tipe tertentu. Data dari tipe tertentu hanya ditampilkan sekali dalam hasil kueri guna memastikan keragaman tipe hasil.

Prasyarat

Catatan penggunaan

  • Jika Anda 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 diterapkan 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 set hasil digabungkan, jumlah total nilai unik tidak dapat diquery.

Parameter

Parameter

Deskripsi

query

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

collapse

Menggabungkan set hasil berdasarkan bidang yang ditentukan oleh parameter fieldName.

fieldName: nama bidang berdasarkan mana set hasil digabungkan. Hanya bidang dengan nilai bertipe INTEGER, FLOATING-POINT, atau KEYWORD yang didukung. Bidang dengan nilai bertipe ARRAY tidak didukung.

offset

Posisi dari mana kueri saat ini dimulai.

limit

Jumlah maksimum baris yang ingin Anda kembalikan dalam kueri saat ini.

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

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, kinerja 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.

  • Jika Anda menyetel returnType ke TableStore.ColumnReturnType.RETURN_SPECIFIED, Anda perlu mengonfigurasi returnNames untuk menentukan kolom yang ingin Anda kembalikan.

  • Jika Anda menyetel parameter returnType ke TableStore.ColumnReturnType.RETURN_ALL, semua kolom dikembalikan.

  • Jika Anda menyetel parameter returnType ke TableStore.ColumnReturnType.RETURN_ALL_FROM_INDEX, semua kolom dalam indeks pencarian dikembalikan. .

  • Jika Anda menyetel parameter returnType ke TableStore.ColumnReturnType.RETURN_NONE, hanya kolom kunci utama yang dikembalikan.

Contoh

Berikut ini adalah contoh kode sampel tentang cara menggunakan kueri match all untuk menanyakan jumlah total baris dalam tabel dan menggabungkan set hasil berdasarkan nilai kolom col_keyword:

let searchQuery = {
    offset: 0,
    limit: 100,
    query: {
        queryType: TableStore.QueryType.MATCH_ALL_QUERY,
    },
    collapse: {
        fieldName: "col_keyword",
    },
    getTotalCount: false,
};
let params = {
    tableName: tableName,
    indexName: indexName,
    searchQuery: searchQuery,
    columnToGet: { // Tentukan kolom yang ingin Anda kembalikan. Anda dapat menyetel parameter ini ke RETURN_SPECIFIED untuk mengembalikan kolom tertentu, RETURN_ALL untuk mengembalikan semua kolom, RETURN_ALL_FROM_INDEX untuk mengembalikan semua kolom dalam indeks pencarian, atau RETURN_NONE untuk mengembalikan hanya kolom kunci utama. 
        returnType: TableStore.ColumnReturnType.RETURN_ALL_FROM_INDEX
    },
    timeoutMs: 30000,
}
client.search(params, function (err, data) {
    if (err) {
        console.log('kesalahan pencarian:', err.toString());
    } else {
        console.log('pencarian berhasil:', data);
    }
});

FAQ

Referensi