All Products
Search
Document Center

Tablestore:Collapse (distinct)

Last Updated:Apr 30, 2026

Fitur collapse (distinct) menghapus duplikat hasil pencarian berdasarkan kolom tertentu dan mengembalikan satu hasil per nilai unik untuk meningkatkan keragaman hasil.

Prasyarat

Catatan

  • Fitur collapse hanya mendukung paginasi dengan metode Offset+Limit. Metode token tidak didukung.

  • Jika Anda menggunakan agregasi statistik bersamaan dengan fitur collapse pada set hasil, agregasi statistik diterapkan pada set hasil sebelum proses collapse dilakukan.

  • Setelah menggunakan fitur collapse, jumlah total kelompok yang dikembalikan ditentukan oleh nilai Offset dan Limit. Jumlah maksimum kelompok yang dapat dikembalikan adalah 100.000.

  • Jumlah total baris yang dikembalikan menunjukkan jumlah baris yang sesuai sebelum dilakukan collapse. Anda tidak dapat memperoleh jumlah total kelompok setelah collapse.

Parameter

Parameter

Deskripsi

TableName

Nama tabel data.

IndexName

Nama indeks pencarian.

Query

Dapat berupa tipe kueri apa pun.

Collapse

Pengaturan parameter collapse, yang mencakup FieldName.

FieldName: Nama kolom yang digunakan untuk melakukan collapse pada set hasil. Fitur ini hanya mendukung kolom bertipe integer, bilangan titik mengambang, dan Keyword. Kolom bertipe array tidak didukung.

Offset

Posisi awal untuk kueri.

Limit

Jumlah maksimum item yang akan dikembalikan untuk kueri.

Jika Anda hanya memerlukan jumlah baris tanpa data aktualnya, atur Limit ke 0. Hal ini tidak akan mengembalikan baris apa pun.

Contoh

Contoh berikut melakukan kueri terhadap semua baris dalam sebuah tabel dan menerapkan collapse pada set hasil berdasarkan kolom pk0, sehingga hanya satu baris per nilai unik pk0 yang dikembalikan.

/// <summary>
/// Melakukan collapse pada set hasil berdasarkan kolom pk0.
/// </summary>
/// <param name="otsClient"></param>
public static void UseCollapse(OTSClient otsClient)
{
    MatchAllQuery matchAllQuery = new MatchAllQuery();

    Collapse collapse = new Collapse();
    collapse.FieldName = "pk0";

    SearchQuery searchQuery = new SearchQuery();
    searchQuery.Query = matchAllQuery;
    searchQuery.Collapse = collapse;

    SearchRequest searchRequest = new SearchRequest(TableName, IndexName, searchQuery);

    SearchResponse searchResponse = otsClient.Search(searchRequest);

    foreach (Row row in searchResponse.Rows)
    {
        Console.WriteLine(JsonConvert.SerializeObject(row));
    }
}

FAQ

Referensi

  • Saat menggunakan indeks pencarian untuk mengkueri data, Anda dapat menggunakan metode kueri berikut: term query, terms query, match all query, match query, match phrase query, prefix query, range query, wildcard query, Boolean query, geo query, nested query, dan exists query. Anda dapat menggunakan metode kueri yang berbeda untuk mengkueri data dari berbagai dimensi sesuai kebutuhan bisnis Anda.

    Anda dapat mengurutkan atau melakukan paginasi pada baris yang memenuhi kondisi kueri dengan menggunakan fitur pengurutan dan paginasi. Untuk informasi selengkapnya, lihat Sorting and paging.

    Anda dapat menggunakan fitur collapse (distinct) untuk melakukan collapse pada set hasil berdasarkan kolom tertentu, sehingga data dari tipe yang ditentukan hanya muncul sekali dalam hasil kueri. Untuk informasi selengkapnya, lihat Collapse (distinct).

  • Jika ingin menganalisis data dalam tabel data, Anda dapat menggunakan fitur agregasi dari operasi Search atau mengeksekusi pernyataan SQL, misalnya untuk memperoleh nilai minimum dan maksimum, jumlah total, serta jumlah total baris. Untuk informasi selengkapnya, lihat Aggregation dan SQL query.

  • Jika ingin memperoleh semua baris yang memenuhi kondisi kueri tanpa perlu mengurutkannya, Anda dapat memanggil operasi ParallelScan dan ComputeSplits untuk menggunakan fitur pemindaian paralel. Untuk informasi selengkapnya, lihat Parallel scan.