全部产品
Search
文档中心

Tablestore:Memulai dengan fitur indeks pencarian

更新时间:Jul 06, 2025

Topik ini menjelaskan cara menggunakan Tablestore SDK for Java untuk melakukan operasi pada indeks pencarian dengan cepat.

Prasyarat

  • Klien telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi klien Tablestore.

  • Tabel data yang memenuhi kondisi berikut telah dibuat. Untuk informasi lebih lanjut, lihat Buat tabel data.

    • Parameter max versions diatur ke 1.

    • TTL diatur ke -1 atau pembaruan pada tabel data dilarang.

Prosedur

Langkah 1: Buat indeks pencarian

Anda dapat membuat indeks pencarian untuk mempercepat kueri data. Saat membuat indeks pencarian, tambahkan kolom yang ingin dikueri ke dalam indeks tersebut. Anda juga dapat mengonfigurasi opsi lanjutan seperti time to live (TTL) dan pra-pengurutan sesuai kebutuhan bisnis.

Contoh kode berikut menunjukkan cara membuat indeks pencarian untuk tabel data. Dalam contoh ini, indeks pencarian mencakup kolom Col_Keyword bertipe Keyword dan kolom Col_Long bertipe Long. Data dalam indeks pencarian diurutkan sebelumnya berdasarkan kunci utama tabel data dan tidak memiliki batas kedaluwarsa.

Catatan

Untuk informasi tentang pemetaan tipe data antara indeks pencarian dan tabel data, lihat Tipe data.

private static void createSearchIndex(SyncClient client) {
    CreateSearchIndexRequest request = new CreateSearchIndexRequest();
    // Tentukan nama tabel data.
    request.setTableName("sampletable"); 
    // Tentukan nama indeks pencarian.
    request.setIndexName("samplesearchindex"); 
    IndexSchema indexSchema = new IndexSchema();
    indexSchema.setFieldSchemas(Arrays.asList(
            // Tentukan nama dan tipe kolom.
            new FieldSchema("Col_Keyword", FieldType.KEYWORD), 
            new FieldSchema("Col_Long", FieldType.LONG)));
    request.setIndexSchema(indexSchema);
    // Panggil klien untuk membuat indeks pencarian.
    client.createSearchIndex(request); 
}

Langkah 2: Kueri data menggunakan indeks pencarian

Saat menggunakan indeks pencarian untuk mengkueri data, pilih jenis kueri berdasarkan kebutuhan bisnis Anda. Tentukan kolom yang ingin dikembalikan serta metode pengurutan data hasil kueri.

Contoh kode berikut menunjukkan cara mengkueri baris di mana nilai kolom Col_Keyword cocok secara tepat dengan "hangzhou" dalam tabel:

/**
 * Kueri baris di mana nilai kolom Col_Keyword tepat cocok dengan "hangzhou" dalam tabel.
 * @param client
 */
private static void termQuery(SyncClient client) {
    SearchQuery searchQuery = new SearchQuery();
    TermQuery termQuery = new TermQuery(); // Atur jenis kueri ke TermQuery.
    termQuery.setFieldName("Col_Keyword"); // Tentukan nama kolom yang ingin Anda kueri.
    termQuery.setTerm(ColumnValue.fromString("hangzhou")); // Tentukan kata kunci yang ingin Anda cocokkan.
    searchQuery.setQuery(termQuery);
    //searchQuery.setGetTotalCount(true); // Atur parameter GetTotalCount ke true untuk mengembalikan jumlah total baris yang memenuhi kondisi kueri.

    SearchRequest searchRequest = new SearchRequest("sampletable", "samplesearchindex", searchQuery);
    // Anda dapat mengonfigurasi parameter columnsToGet untuk menentukan kolom yang ingin Anda kembalikan 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); // Atur ReturnAll ke true untuk mengembalikan semua kolom.
    //columnsToGet.setColumns(Arrays.asList("ColName1","ColName2")); // Konfigurasikan parameter Columns untuk menentukan 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 ditampilkan.
    System.out.println("Baris: " + resp.getRows());
}

Referensi