全部产品
Search
文档中心

Tablestore:Kueri tepat

更新时间:Jul 06, 2025

Kueri tepat mirip dengan kueri istilah, tetapi mendukung beberapa kata kunci. Data akan dikembalikan jika nilai kolom cocok dengan setidaknya satu dari kata kunci tersebut. Kueri ini dapat digunakan seperti operator IN dalam pernyataan SQL.

Operasi API

Anda dapat memanggil operasi Search atau ParallelScan dan mengatur jenis kueri ke TermsQuery untuk menjalankan kueri tepat.

Parameter

Parameter

Deskripsi

kueri

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 tepat. Anda dapat menentukan hingga 1.024 kata kunci.

Sebaris data akan dikembalikan ketika nilai kolom cocok dengan setidaknya satu dari kata kunci tersebut.

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 berbasis BM25. Parameter ini digunakan dalam skenario pencarian teks lengkap. Jika Anda menentukan bobot lebih tinggi untuk bidang yang ingin Anda kueri, skor relevansi kata kunci berbasis BM25 untuk bidang tersebut lebih tinggi. Nilai dari parameter ini adalah bilangan titik mengambang 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.

Metode

Anda dapat menggunakan konsol Tablestore, CLI Tablestore, atau SDK Tablestore untuk menjalankan kueri tepat. Pastikan langkah-langkah berikut telah dilakukan sebelum menjalankan kueri:

Gunakan Konsol Tablestore

  1. Pergi ke tab Indexes.

    1. Masuk ke konsol Tablestore.

    2. Di bilah navigasi atas, pilih grup sumber daya dan wilayah.

    3. Di halaman Overview, klik nama instance yang ingin Anda kelola atau pilih Manage Instance di kolom Actions instance.

    4. Di tab Tables pada tab Instance Details, klik nama tabel data atau pilih Indexes di kolom Tindakan tabel data.

  2. Di tab Indexes, temukan indeks pencarian yang ingin Anda gunakan untuk mengkueri data dan klik Manage Data di kolom Actions.

  3. Di kotak dialog Search, tentukan kondisi kueri.

    1. Secara default, sistem mengembalikan semua kolom atribut. Untuk mengembalikan kolom atribut tertentu, matikan All Columns dan tentukan kolom atribut yang ingin Anda kembalikan. Pisahkan beberapa kolom atribut dengan koma (,).

      Catatan

      Secara default, sistem mengembalikan semua kolom kunci utama dari tabel data.

    2. Pilih operator logis And, Or, atau Not sesuai kebutuhan bisnis Anda.

      Jika Anda memilih operator logis And, data yang memenuhi kondisi kueri akan dikembalikan. Jika Anda memilih operator Or dan menentukan satu kondisi kueri, data yang memenuhi kondisi tersebut akan dikembalikan. Jika Anda memilih operator logis Not, data yang tidak memenuhi kondisi kueri akan dikembalikan.

    3. Pilih bidang dan klik Add.

    4. Atur parameter Jenis Kueri ke TermsQuery(TermsQuery), masukkan nilai yang ingin Anda kueri, lalu klik Add.

      Untuk menambahkan lebih banyak nilai, klik Add setiap kali Anda memasukkan nilai di bidang Value.

    5. Secara default, fitur pengurutan dinonaktifkan. Jika Anda ingin mengurutkan hasil kueri berdasarkan bidang tertentu, aktifkan Sort dan tentukan bidang serta urutan pengurutan.

    6. Secara default, fitur agregasi dinonaktifkan. Jika Anda ingin mengumpulkan statistik pada bidang tertentu, aktifkan Collect Statistics, tentukan bidang yang ingin Anda analisis, dan konfigurasikan informasi yang diperlukan.

  4. Klik OK.

    Data yang memenuhi kondisi kueri akan ditampilkan di tab Indexes.

Gunakan CLI Tablestore

Anda dapat menjalankan perintah search di CLI Tablestore untuk mengkueri data menggunakan indeks pencarian. Untuk informasi lebih lanjut, lihat Indeks Pencarian.

  1. Jalankan perintah search untuk menggunakan indeks pencarian search_index dalam mengkueri data dan mengembalikan semua kolom terindeks dari setiap baris yang memenuhi kondisi kueri.

    search -n search_index --return_all_indexed
  2. Masukkan kondisi kueri sesuai petunjuk sistem:

    {
        "Offset": -1,
        "Limit": 10,
        "Collapse": null,
        "Sort": null,
        "GetTotalCount": true,
        "Token": null,
        "Query": {
            "Name": "TermsQuery",
            "Query": {
                "FieldName": "col_keyword",
                "Terms": ["hangzhou", "xi'an"]
            }
        }
    }

Gunakan SDK Tablestore

Anda dapat menjalankan kueri tepat menggunakan SDK Tablestore berikut: SDK Tablestore untuk Java, SDK Tablestore untuk Go, SDK Tablestore untuk Python, SDK Tablestore untuk Node.js, SDK Tablestore untuk .NET, dan SDK Tablestore untuk PHP. Contoh ini menggunakan SDK Tablestore untuk Java.

Kode sampel berikut menunjukkan cara mengkueri 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(); // Atur 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); //Atur 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 menentukan 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); // Atur 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 alih-alih jumlah baris yang dikembalikan ditampilkan. 
    System.out.println("Row: " + resp.getRows());
}

Aturan penagihan

Saat menggunakan indeks pencarian untuk mengkueri data, Anda akan dikenakan biaya untuk throughput baca yang dikonsumsi. Untuk informasi lebih lanjut, lihat Item yang Dapat Ditagih dari Indeks Pencarian.

FAQ

Referensi

  • Saat menggunakan indeks pencarian untuk mengkueri data, Anda dapat menggunakan metode kueri berikut: kueri istilah, kueri tepat, kueri cocok semua, kueri cocok, kueri frasa cocok, kueri awalan, kueri rentang, kueri wildcard, kueri kabur, kueri Boolean, kueri geo, kueri bersarang, kueri vektor KNN, dan kueri eksistensi. Anda dapat memilih metode kueri berdasarkan kebutuhan bisnis Anda untuk mengkueri data dari berbagai dimensi.

    Anda dapat mengurutkan atau membagi halaman baris yang memenuhi kondisi kueri dengan menggunakan fitur pengurutan dan pemisahan halaman. Untuk informasi lebih lanjut, lihat Lakukan Pengurutan dan Pemisahan Halaman.

    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 Anda ingin menganalisis data dalam tabel data, Anda dapat menggunakan fitur agregasi dari operasi Search atau menjalankan pernyataan SQL. Misalnya, Anda dapat memperoleh nilai minimum dan maksimum, jumlah, dan jumlah total baris. Untuk informasi lebih lanjut, lihat Agregasi dan Kueri SQL.

  • Jika Anda 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.