All Products
Search
Document Center

Tablestore:Collapse (distinct)

Last Updated:Apr 30, 2026

Fitur collapse digunakan untuk menghapus duplikat hasil pencarian berdasarkan kolom tertentu. Ketika hasil kueri berisi banyak data dari tipe tertentu, fitur ini menampilkan data tersebut hanya sekali dalam hasil yang dikembalikan guna memastikan keragaman tipe hasil.

Prasyarat

Catatan

  • Fitur collapse hanya mendukung paginasi dengan offset dan limit, dan tidak mendukung paginasi berbasis token.

  • Ketika Anda menggunakan agregasi statistik dan collapse pada set hasil, agregasi diterapkan pada set hasil sebelum dilakukan collapse.

  • Setelah menggunakan fitur collapse, jumlah total kelompok yang dikembalikan dibatasi oleh parameter offset dan limit, dengan maksimal 100.000 kelompok.

  • Jumlah total baris yang dikembalikan dalam hasil adalah jumlah baris yang sesuai sebelum operasi collapse. Anda tidak dapat mengambil jumlah total kelompok setelah collapse.

Parameter

Parameter

Deskripsi

table_name

Nama tabel data.

index_name

Nama indeks pencarian.

query

Jenis kueri. Atur ke jenis kueri apa pun yang didukung.

collapse

Melakukan collapse pada set hasil berdasarkan kolom tertentu. Hanya kolom bertipe INTEGER, FLOATING-POINT, dan KEYWORD yang didukung.

field_name: nama kolom yang digunakan untuk collapse.

offset

Posisi awal untuk kueri.

limit

Jumlah maksimum baris yang dikembalikan. Atur limit ke 0 untuk hanya mengembalikan jumlah baris tanpa data aktual.

Contoh

Kode contoh berikut menunjukkan cara menggunakan indeks pencarian untuk mendapatkan hingga 10 catatan keyword unik dalam tabel php_sdk_test serta mengembalikan data pada kolom col1 dan col2.

$request = array(
    'table_name' => 'php_sdk_test',
    'index_name' => 'php_sdk_test_search_index',
    'search_query' => array(
        'offset' => 0,
        'limit' => 10,
        'get_total_count' => true,
        'collapse' => array(
            'field_name' => 'keyword'
        ),
        'query' => array(
            'query_type' => QueryTypeConst::MATCH_ALL_QUERY
        ),
//        'sort' => array(// Tentukan metode pengurutan tertentu jika diperlukan. 
//            array(
//                'field_sort' => array(
//                    'field_name' => 'keyword',
//                    'order' => SortOrderConst::SORT_ORDER_ASC
//                )
//            ),
//        ),
        'token' => null,
    ),
    'columns_to_get' => array(
        'return_type' => ColumnReturnTypeConst::RETURN_SPECIFIED,
        'return_names' => array('col1', 'col2')
    )
);
$response = $otsClient->search($request);

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.

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

    Jika Anda ingin melakukan collapse pada set hasil berdasarkan kolom tertentu, Anda dapat menggunakan fitur collapse (distinct). Dengan cara ini, data dari tipe tertentu hanya muncul sekali dalam hasil kueri. Untuk informasi selengkapnya, lihat Collapse (distinct).

  • Jika Anda ingin menganalisis data dalam tabel data, seperti mendapatkan nilai ekstrem, jumlah total, dan jumlah baris, Anda dapat melakukan operasi agregasi atau mengeksekusi pernyataan SQL. Untuk informasi selengkapnya, lihat Aggregation dan SQL query.

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