Kueri terms mirip dengan kueri term, tetapi mendukung beberapa terms. Baris data akan dikembalikan jika setidaknya salah satu kata kunci cocok dengan nilai kolom. Kueri terms dapat digunakan seperti Operator IN dalam pernyataan SQL.
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 |
query | Jenis kueri. Atur parameter kueri ke TermsQuery. |
fieldName | Nama bidang yang ingin Anda cocokkan. |
terms | Kata kunci yang digunakan untuk mencocokkan nilai bidang saat Anda melakukan kueri terms. Anda dapat menentukan hingga 1.024 kata kunci. Baris data akan dikembalikan ketika nilai kolom cocok dengan setidaknya salah satu kata kunci. |
getTotalCount | Menentukan apakah akan mengembalikan jumlah total baris yang memenuhi kondisi kueri. Nilai default dari parameter ini adalah false, yang menentukan bahwa jumlah total baris yang memenuhi kondisi kueri tidak dikembalikan. Jika Anda mengatur parameter ini ke true, kinerja kueri akan terpengaruh. |
weight | Bobot yang ingin Anda tetapkan pada bidang yang ingin Anda kueri untuk menghitung skor relevansi kata kunci berdasarkan BM25. Parameter ini digunakan dalam skenario pencarian teks lengkap. Jika Anda menentukan bobot yang lebih tinggi untuk bidang yang ingin Anda kueri, skor relevansi kata kunci berbasis BM25 untuk bidang tersebut akan lebih tinggi. Nilai dari 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 akan mengembalikan semua kolom dari setiap baris yang memenuhi kondisi kueri. Anda dapat menentukan bidang returnAll dan columns untuk parameter ini. Nilai default dari bidang returnAll adalah false, yang menentukan bahwa tidak semua kolom dikembalikan. Dalam hal ini, Anda dapat menggunakan bidang 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 bidang returnAll ke true, semua kolom dikembalikan. |
Contoh
Berikut ini adalah contoh kode sampel untuk menanyakan baris di mana nilai kolom Col_Keyword adalah "hangzhou" atau "xi'an":
/**
* Cari tabel untuk baris di mana nilai Col_Keyword adalah "hangzhou" atau "xi'an".
* @param client
*/
private static void termQuery(SyncClient client) {
SearchQuery searchQuery = new SearchQuery();
TermsQuery termsQuery = new TermsQuery(); // Setel jenis kueri ke TermsQuery.
termsQuery.setFieldName("Col_Keyword"); // Tentukan nama kolom yang ingin Anda cocokkan.
termsQuery.addTerm(ColumnValue.fromString("hangzhou")); // Tentukan kata kunci yang ingin Anda cocokkan.
termsQuery.addTerm(ColumnValue.fromString("xi'an")); // Tentukan kata kunci yang ingin Anda cocokkan.
searchQuery.setQuery(termsQuery);
//searchQuery.setGetTotalCount(true); //Setel parameter GetTotalCount ke true untuk mengembalikan jumlah total baris yang memenuhi kondisi kueri.
SearchRequest searchRequest = new SearchRequest("<TABLE_NAME>", "<SEARCH_INDEX_NAME>", searchQuery);
// Anda dapat menggunakan parameter columnsToGet untuk menentukan kolom yang ingin Anda kembalikan atau tentukan bahwa semua kolom dikembalikan. Jika Anda tidak menentukan parameter ini, hanya kolom kunci utama yang dikembalikan.
//SearchRequest.ColumnsToGet columnsToGet = new SearchRequest.ColumnsToGet();
//columnsToGet.setReturnAll(true); // Setel parameter ReturnAll ke true untuk mengembalikan semua kolom.
//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 memenuhi kondisi kueri bukan jumlah baris yang dikembalikan yang ditampilkan.
System.out.println("Row: " + resp.getRows());
}FAQ
Referensi
Saat menggunakan indeks pencarian untuk menanyakan data, Anda dapat menggunakan metode kueri berikut: kueri term, kueri terms, kueri match all, kueri match, kueri match phrase, kueri prefix, kueri range, 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 kebutuhan bisnis Anda.
Anda dapat mengurutkan atau membagi halaman baris yang memenuhi kondisi kueri menggunakan fitur pengurutan dan paging. Untuk informasi lebih lanjut, lihat Melakukan 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 menanyakan nilai maksimum dan minimum, jumlah nilai, dan 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.