Anda dapat menggunakan 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 yang dikembalikan untuk memastikan keragaman hasil.
Prasyarat
Sebuah instance OTSClient telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi instance OTSClient.
Sebuah tabel data telah dibuat dan data telah ditulis ke tabel. Untuk informasi lebih lanjut, lihat Buat tabel data dan Tulis data.
Indeks pencarian telah dibuat untuk tabel data. Untuk informasi lebih lanjut, lihat Buat indeks pencarian.
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 sebelum penggabungan.
Jika Anda menggabungkan hasil kueri, jumlah total hasil yang dikembalikan ditentukan oleh nilai parameter offset dan limit. Maksimal 100.000 hasil dapat dikembalikan.
Jumlah total baris dalam respons menunjukkan jumlah baris yang memenuhi kondisi kueri sebelum menggunakan fitur collapse (distinct). Setelah penggabungan set hasil, jumlah total nilai unik tidak dapat diquery.
Parameter
Parameter | Deskripsi |
table_name | Nama tabel data. |
index_name | Nama indeks pencarian. |
query | Tipe kueri. Anda dapat menyetel 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 kembalikan dalam kueri saat ini. Untuk hanya menanyakan jumlah baris yang memenuhi kondisi kueri tanpa mengembalikan data spesifik, Anda dapat menyetel limit ke 0. Dengan cara ini, Tablestore mengembalikan jumlah baris yang memenuhi kondisi kueri tanpa data spesifik dari tabel. |
Contoh
Kode sampel berikut menunjukkan cara menggunakan indeks pencarian untuk mendapatkan hingga 10 rekaman kata kunci unik di tabel php_sdk_test dan mengembalikan data di 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
Ketika Anda menggunakan indeks pencarian untuk menanyakan 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 menanyakan data dari beberapa dimensi sesuai kebutuhan bisnis Anda.
Untuk mengurutkan atau membagi halaman baris yang memenuhi kondisi kueri, Anda dapat menggunakan fitur Pengurutan dan pembagian halaman. Untuk informasi lebih lanjut, lihat Pengurutan dan pembagian halaman.
Untuk menggabungkan set hasil berdasarkan kolom tertentu, gunakan fitur collapse (distinct). 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, seperti mendapatkan nilai ekstrem, jumlah total, dan jumlah total baris, Anda dapat melakukan operasi agregasi atau menjalankan pernyataan SQL. Untuk informasi lebih lanjut, lihat Agregasi dan Kueri SQL.
Untuk 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.