Topik ini menjelaskan cara menggunakan Tablestore SDK for Java untuk melakukan kueri rentang indeks pencarian. Anda dapat menentukan kondisi rentang untuk mengkueri data yang berada dalam rentang tersebut.
Prasyarat
Klien Tablestore telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi Klien Tablestore.
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.
Parameter
Parameter | Deskripsi |
kueri | Jenis kueri. Atur parameter ini ke
|
sort | Metode pengurutan. Untuk informasi lebih lanjut, lihat Lakukan pengurutan dan paging. |
getTotalCount | Menentukan apakah akan mengembalikan jumlah total baris yang memenuhi kondisi kueri. Nilai default: false. Nilai false menentukan bahwa jumlah total baris yang memenuhi kondisi kueri tidak dikembalikan. Jika Anda mengatur 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. Anda dapat mengonfigurasi bidang returnAll dan columns untuk parameter ini. Nilai default dari bidang returnAll adalah false, yang menentukan bahwa tidak semua kolom dari setiap baris yang memenuhi kondisi kueri dikembalikan. Anda dapat menggunakan bidang columns untuk menentukan kolom yang ingin Anda kembalikan. Jika Anda tidak menggunakan bidang columns untuk menentukan kolom yang ingin Anda kembalikan, hanya kolom kunci utama yang dikembalikan. Jika Anda mengatur bidang returnAll ke true, semua kolom dari setiap baris yang memenuhi kondisi kueri dikembalikan. |
Contoh
private static void rangeQuery(SyncClient client) {
SearchQuery searchQuery = new SearchQuery();
RangeQuery rangeQuery = new RangeQuery(); // Setel jenis kueri ke RangeQuery.
/**
* Contoh 1: Kueri baris di mana nilai kolom Col_Long lebih besar dari 3.
*/
rangeQuery.setFieldName("Col_Long");
rangeQuery.greaterThan(ColumnValue.fromLong(3));
/**
* //Contoh 2: Kueri baris di mana nilai kolom Col_Date_String lebih besar dari atau sama dengan 2020-01-01 10:55:12 dan kurang dari 2021-03-03 08:20:50.
* //Tipe kolom Col_Date_String adalah String dalam tabel data dan Date dalam indeks pencarian tempat tabel data dipetakan. Nilai-nilai kolom Col_Date_String dalam indeks pencarian berada dalam format yyyy-MM-dd HH:mm:ss.
* rangeQuery.setFieldName("Col_Date_String");
* rangeQuery.greaterThanOrEqual(ColumnValue.fromString("2020-01-01 10:55:12"));
* rangeQuery.lessThan(ColumnValue.fromString("2021-03-03 08:20:50"));
*/
/**
* //Contoh 3: Kueri baris di mana nilai kolom Col_Date_Long lebih besar dari 1731036722.
* //Tipe kolom Col_Date_Long adalah Integer dalam tabel data dan Date dalam indeks pencarian tempat tabel data dipetakan. Nilai-nilai kolom Col_Date_Long dalam indeks pencarian adalah timestamp dalam detik.
* rangeQuery.setFieldName("Col_Date_Long");
* rangeQuery.greaterThan(ColumnValue.fromLong(1731036722));
*/
searchQuery.setQuery(rangeQuery);
searchQuery.setGetTotalCount(true); // Tentukan bahwa jumlah total baris yang memenuhi kondisi kueri dikembalikan.
SearchRequest searchRequest = new SearchRequest("<TABLE_NAME>", "<SEARCH_INDEX_NAME>", searchQuery);
//Konfigurasikan parameter columnsToGet untuk menentukan bahwa kolom tertentu atau semua kolom dikembalikan. Jika Anda tidak mengonfigurasi parameter columnsToGet, hanya kolom kunci utama yang dikembalikan.
//SearchRequest.ColumnsToGet columnsToGet = new SearchRequest.ColumnsToGet();
// Tentukan bahwa semua kolom dikembalikan.
//columnsToGet.setReturnAll(true);
// Tentukan bahwa kolom tertentu dikembalikan.
//columnsToGet.setColumns(Arrays.asList("ColName1","ColName2"));
//searchRequest.setColumnsToGet(columnsToGet);
SearchResponse resp = client.search(searchRequest);
//System.out.println("TotalCount: " + resp.getTotalCount());// Tampilkan jumlah total baris yang cocok bukan jumlah baris yang dikembalikan.
System.out.println("Row: " + resp.getRows());
}Pertanyaan Umum
Referensi
Saat menggunakan indeks pencarian untuk mengkueri data, Anda dapat menggunakan metode kueri berikut: kueri tepat, kueri terms, kueri match all, kueri match, kueri match phrase, kueri prefix, kueri rentang, kueri wildcard, kueri geo, KNN vector query, kueri Boolean, kueri nested, dan kueri exists. Setelah membuat indeks pencarian, Anda dapat menggunakan metode kueri yang disediakan oleh indeks pencarian untuk mengkueri data dari berbagai dimensi sesuai dengan kebutuhan bisnis Anda.
Anda dapat mengurutkan atau membagi halaman baris yang memenuhi kondisi kueri dengan menggunakan fitur pengurutan dan paging. Untuk informasi lebih lanjut, lihat Lakukan Pengurutan dan Paging.
Anda dapat menggunakan fitur collapse (distinct) untuk meruntuhkan set hasil berdasarkan kolom tertentu. Dengan cara ini, data dari tipe yang ditentukan muncul hanya sekali dalam hasil kueri. Untuk informasi lebih lanjut, lihat Collapse (Distinct).
Jika ingin menganalisis data dalam tabel, Anda dapat memanggil operasi Search untuk menggunakan fitur agregasi atau menggunakan fitur kueri SQL. Misalnya, Anda dapat mengkueri nilai maksimum dan minimum, jumlah nilai, serta jumlah baris. Untuk informasi lebih lanjut, lihat Agregasi dan Kueri SQL.
Jika ingin 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.