Anda dapat menjalankan kueri awalan untuk mencari data yang sesuai dengan awalan tertentu. Jika bidang yang digunakan untuk pencocokan kondisi awalan adalah tipe TEXT, nilai-nilai pada bidang tersebut akan dipecah menjadi token. Sebuah baris memenuhi kondisi kueri jika setidaknya satu token mengandung awalan yang ditentukan.
Prasyarat
Klien Tablestore telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi Klien Tablestore.
Tabel data telah dibuat dan data telah dimasukkan ke dalam 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 |
query | Jenis kueri. Atur parameter kueri ke PrefixQuery. |
fieldName | Nama kolom yang ingin Anda tanyakan. |
prefix | Awalan. Jika kolom yang digunakan untuk mencocokkan kondisi awalan adalah kolom Text, kolom tersebut akan dipecah menjadi token. Sebuah baris memenuhi kondisi kueri ketika setidaknya satu token mengandung awalan yang ditentukan. |
getTotalCount | Menentukan apakah jumlah total baris yang memenuhi kondisi kueri dikembalikan. Nilai default: false. Jika Anda mengatur parameter ini ke true, performa kueri akan terpengaruh. |
weight | Bobot yang ingin Anda tetapkan pada kolom yang ingin Anda tanyakan untuk menghitung skor relevansi kata kunci berbasis BM25. Parameter ini digunakan dalam skenario pencarian teks lengkap. Bobot yang lebih tinggi menghasilkan skor relevansi kata kunci berbasis BM25 yang lebih tinggi untuk kolom tersebut. Nilai parameter ini adalah bilangan floating point positif. Parameter ini tidak memengaruhi jumlah baris yang dikembalikan. Namun, parameter ini memengaruhi skor relevansi kata kunci berbasis BM25 dari hasil kueri. |
tableName | Nama tabel data. |
indexName | Nama indeks pencarian. |
columnsToGet | Menentukan apakah semua kolom dari setiap baris yang memenuhi kondisi kueri dikembalikan. Anda dapat mengonfigurasi parameter returnAll dan columns untuk parameter ini. Nilai default parameter returnAll adalah false, yang menentukan bahwa tidak semua kolom dikembalikan. Dalam kasus ini, Anda dapat menggunakan parameter columns untuk menentukan kolom yang ingin Anda kembalikan. Jika Anda tidak menentukan kolom yang ingin Anda kembalikan, hanya kolom kunci utama yang dikembalikan. Jika Anda mengatur parameter returnAll ke true, semua kolom dikembalikan. |
Contoh kode
Berikut ini adalah contoh kode yang menunjukkan cara mencari baris di mana nilai kolom Col_Keyword mengandung awalan "hangzhou" dalam sebuah tabel:
/**
* Cari tabel untuk baris di mana nilai Col_Keyword mengandung awalan "hangzhou".
* @param client
*/
private static void prefixQuery(SyncClient client) {
SearchQuery searchQuery = new SearchQuery();
PrefixQuery prefixQuery = new PrefixQuery(); // Setel jenis kueri ke PrefixQuery.
searchQuery.setGetTotalCount(true);
prefixQuery.setFieldName("Col_Keyword");
prefixQuery.setPrefix("hangzhou");
searchQuery.setQuery(prefixQuery);
//searchQuery.setGetTotalCount(true); // Tentukan bahwa jumlah total baris yang cocok dikembalikan.
SearchRequest searchRequest = new SearchRequest("<TABLE_NAME>", "<SEARCH_INDEX_NAME>", searchQuery);
// Anda dapat mengonfigurasi parameter columnsToGet untuk menentukan kolom yang dikembalikan atau tentukan bahwa semua kolom dikembalikan. Jika Anda tidak mengonfigurasi parameter ini, hanya kolom kunci utama yang dikembalikan.
//SearchRequest.ColumnsToGet columnsToGet = new SearchRequest.ColumnsToGet();
//columnsToGet.setReturnAll(true); // Tentukan bahwa semua kolom dikembalikan.
//columnsToGet.setColumns(Arrays.asList("ColName1","ColName2")); // Tentukan kolom yang ingin Anda kembalikan.
//searchRequest.setColumnsToGet(columnsToGet);
SearchResponse resp = client.search(searchRequest);
//System.out.println("TotalCount: " + resp.getTotalCount()); // Tentukan bahwa jumlah total baris yang cocok bukan jumlah baris yang dikembalikan ditampilkan.
System.out.println("Row: " + resp.getRows());
}Pertanyaan Umum
Referensi
Saat menggunakan indeks pencarian untuk menanyakan data, Anda dapat menggunakan metode kueri berikut: kueri tepat, kueri terms, kueri match all, kueri match, kueri match phrase, kueri awalan, kueri rentang, kueri wildcard, kueri geo, kueri vektor KNN, kueri Boolean, kueri nested, dan kueri exists. Setelah membuat indeks pencarian, Anda dapat menggunakan metode kueri yang disediakan oleh indeks pencarian untuk menanyakan data dari berbagai dimensi sesuai dengan kebutuhan bisnis Anda.
Anda dapat mengurutkan atau membagi halaman baris yang memenuhi kondisi kueri 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 Pencarian untuk menggunakan fitur agregasi atau menggunakan fitur kueri SQL. Misalnya, Anda dapat menanyakan 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.