全部产品
Search
文档中心

Tablestore:Kueri tepat

更新时间:Jul 06, 2025

Anda dapat menggunakan kueri tepat untuk menanyakan data yang cocok persis dengan nilai tertentu dari sebuah kolom. Kueri ini mirip dengan pencarian berdasarkan kondisi kecocokan string. Jika tipe kolom adalah TEXT, Tablestore akan memecah string menjadi token dan mencocokkan kata kunci berdasarkan token-token tersebut. Sebuah baris dianggap memenuhi kondisi kueri jika setidaknya salah satu token dalam baris cocok persis dengan kata kunci. Kata kunci yang digunakan untuk pencocokan tidak dipecah menjadi token.

Prasyarat

Contoh kode

Berikut adalah contoh kode untuk menanyakan baris-baris di mana nilai kolom Col_Keyword cocok persis dengan "hangzhou" dalam sebuah tabel:

/**
 * Query the rows in which the value of the Col_Keyword column exactly matches "hangzhou" in a table: 
 * @param client
 */
private static void termQuery(SyncClient client) {
    SearchQuery searchQuery = new SearchQuery();
    TermQuery termQuery = new TermQuery(); // Setel jenis kueri ke TermQuery. 
    termQuery.setFieldName("Col_Keyword"); // Setel nama kolom yang ingin Anda cocokkan. 
    termQuery.setTerm(ColumnValue.fromString("hangzhou")); // Setel nilai yang ingin Anda cocokkan. 
    searchQuery.setQuery(termQuery);
    //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 mengonfigurasi parameter columnsToGet untuk menentukan kolom yang dikembalikan atau menentukan 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("Baris: " + resp.getRows());
}
            

FAQ

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 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 merangkum 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 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.