全部产品
Search
文档中心

Tablestore:Kueri frasa cocok

更新时间:Jul 06, 2025

Kueri frasa cocok mirip dengan kueri cocok, tetapi mengevaluasi posisi token. Baris hanya memenuhi kondisi kueri jika urutan dan posisi token dalam baris sesuai dengan urutan dan posisi token dalam kata kunci. Jika metode tokenisasi untuk bidang yang dikueri adalah tokenisasi fuzzy, kueri frasa cocok memiliki latensi lebih rendah dibandingkan kueri wildcard.

Skenario

Gunakan kueri frasa cocok untuk mencari data yang mengandung frasa spesifik dengan kata-kata dalam urutan tertentu. Kueri ini dapat digunakan bersamaan dengan tokenisasi untuk melakukan pencarian teks lengkap dalam skenario seperti analisis big data, pencarian konten, dan rekomendasi personalisasi. Contohnya, Anda dapat mengkueri kalimat yang mengandung frasa spesifik dalam pencarian konten atau menemukan pesan dengan urutan tertentu dalam catatan obrolan.

Fitur

Kueri frasa cocok menggunakan pencocokan mendekati untuk mengkueri data dan mengevaluasi posisi token. Sebagai contoh, nilai dalam kolom tipe TEXT adalah "Hangzhou West Lake Scenic Area" dalam satu baris, sementara kata kunci yang ditentukan adalah "Hangzhou Scenic Area". Tablestore mengembalikan baris ketika menggunakan kueri cocok, tetapi tidak mengembalikannya saat menggunakan kueri frasa cocok. Jarak antara "Hangzhou" dan "Scenic Area" dalam kata kunci adalah 0, sedangkan jarak dalam kolom baris tersebut adalah 2 karena dua kata "West" dan "Lake" berada di antaranya.

Saat menggunakan kueri frasa cocok, tentukan nama bidang yang ingin dikueri dan kata kunci. Baris hanya memenuhi kondisi kueri jika urutan dan posisi token dalam baris sesuai dengan urutan dan posisi token dalam kata kunci.

Saat menjalankan kueri frasa cocok, Anda dapat menentukan bobot untuk bidang yang ingin dikueri guna menghitung skor relevansi kata kunci berbasis BM25, kolom yang ingin dikembalikan, apakah akan mengembalikan jumlah total baris yang memenuhi kondisi kueri, serta metode pengurutan hasil.

Operasi API

Anda dapat memanggil operasi Search atau ParallelScan, serta atur jenis kueri ke MatchPhraseQuery untuk menjalankan kueri frasa cocok.

Parameter

Parameter

Deskripsi

fieldName

Nama bidang yang ingin Anda cocokkan.

Anda dapat melakukan kueri frasa cocok pada bidang TEXT.

text

Kata kunci yang digunakan untuk mencocokkan nilai bidang saat Anda melakukan kueri frasa cocok.

Jika bidang yang ingin Anda cocokkan adalah bidang TEXT, kata kunci dipecah menjadi beberapa token berdasarkan tipe analyzer yang Anda tentukan saat membuat indeks pencarian. Jika Anda tidak menentukan tipe analyzer saat membuat indeks pencarian, tokenisasi kata tunggal dilakukan. Untuk informasi lebih lanjut, lihat Tokenisasi.

Sebagai contoh, jika Anda melakukan kueri frasa cocok menggunakan frasa "this is", "..., this is tablestore" dan "this is a table" dikembalikan. "this table is ..." atau "is this a table" tidak dikembalikan.

query

Tipe kueri. Atur parameter query ke matchPhraseQuery.

offset

Posisi dari mana kueri saat ini dimulai.

limit

Jumlah maksimum baris yang ingin Anda kembalikan dalam kueri saat ini.

Untuk hanya mengkueri jumlah baris yang memenuhi kondisi kueri tanpa data spesifik, atur parameter limit ke 0.

getTotalCount

Menentukan apakah akan mengembalikan jumlah total baris yang memenuhi kondisi kueri. Nilai default 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 berkurang.

weight

Bobot yang ingin Anda berikan 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 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 setiap baris yang memenuhi kondisi kueri. Anda dapat menentukan bidang returnAll dan columns untuk parameter columnsToGet.

Nilai default 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.

Catatan penggunaan

Gunakan indeks pencarian untuk mengurutkan hasil kueri berdasarkan skor relevansi kata kunci berbasis BM25. Skor relevansi kustom tidak dapat ditentukan untuk mengurutkan hasil kueri.

Metode

Anda dapat menggunakan konsol Tablestore, CLI Tablestore, atau SDK Tablestore untuk menjalankan kueri frasa cocok.

Sebelum menjalankan kueri frasa cocok, pastikan langkah-langkah berikut telah dilakukan:

Gunakan konsol Tablestore

Anda dapat menggunakan konsol Tablestore untuk menjalankan kueri frasa cocok.

  1. Pergi ke tab Indexes.

    1. Masuk ke konsol Tablestore.

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

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

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

  2. Di tab Indexes, temukan indeks pencarian yang ingin digunakan 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 dikembalikan. Pisahkan beberapa kolom atribut dengan koma (,).

      Catatan

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

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

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

    3. Pilih bidang tipe TEXT dan klik Add.

    4. Atur parameter Query Type ke MatchPhraseQuery(MatchPhraseQuery) dan masukkan nilai yang ingin dikueri.

    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 dianalisis, dan konfigurasikan informasi yang diperlukan.

  4. Klik OK.

    Data yang memenuhi kondisi kueri akan ditampilkan dalam urutan yang ditentukan di tab Indexes.

Gunakan CLI Tablestore

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

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

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

    {
        "Offset": -1,
        "Limit": 10,
        "Collapse": null,
        "Sort": null,
        "GetTotalCount": true,
        "Token": null,
        "Query": {
            "Name": "MatchPhraseQuery",
            "Query": {
                "FieldName": "col_text",
                "Text": "this is"
            }
        }
    }

Gunakan SDK Tablestore

Anda dapat menjalankan kueri frasa cocok menggunakan SDK Tablestore berikut: Tablestore SDK for Java, Tablestore SDK for Go, Tablestore SDK for Python, Tablestore SDK for Node.js, Tablestore SDK for .NET, dan Tablestore SDK for PHP. Dalam contoh ini, Tablestore SDK for Java digunakan.

Kode sampel berikut menunjukkan cara mengkueri baris di mana nilai kolom Col_Text cocok dengan frasa lengkap "hangzhou shanghai" secara berurutan dalam tabel data:

/**
 * Kueri baris di mana nilai kolom Col_Text cocok dengan frasa lengkap "hangzhou shanghai" secara berurutan dalam tabel data. Tablestore mengembalikan jumlah total baris yang memenuhi kondisi kueri dan data spesifik sebagian dari baris-baris tersebut.
 * @param client
 */
private static void matchPhraseQuery(SyncClient client) {
    SearchQuery searchQuery = new SearchQuery();
    MatchPhraseQuery matchPhraseQuery = new MatchPhraseQuery(); // Atur tipe kueri ke MatchPhraseQuery.
    matchPhraseQuery.setFieldName("Col_Text"); // Tentukan nama kolom yang akan dikueri.
    matchPhraseQuery.setText("hangzhou shanghai"); // Tentukan kata kunci yang ingin Anda cocokkan.
    searchQuery.setQuery(matchPhraseQuery);
    searchQuery.setOffset(0); // Atur parameter offset ke 0.
    searchQuery.setLimit(20); // Atur limit ke 20 untuk mengembalikan hingga 20 baris.
    //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 akan 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.
    System.out.println("Row: " + resp.getRows());
}

Aturan penagihan

Saat menggunakan indeks pencarian untuk mengkueri data, Anda 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 tepat, kueri terms, kueri cocok semua, kueri cocok, kueri frasa cocok, kueriprefix, kueri rentang, kueri wildcard, kueri fuzzy, kueri Boolean, kueri geo, kueri nested, kueri vektor KNN, dan kueri exists. Anda dapat memilih metode kueri berdasarkan kebutuhan bisnis untuk mengkueri data dari berbagai dimensi.

    Anda dapat mengurutkan atau membagi halaman baris yang memenuhi kondisi kueri menggunakan fitur pengurutan dan pemisahan halaman. Untuk informasi lebih lanjut, lihat Melakukan pengurutan dan pemisahan halaman.

    Anda dapat menggunakan fitur collapse (distinct) untuk menggabungkan set hasil berdasarkan kolom tertentu. Dengan cara ini, data tipe tertentu 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 operasi Search atau menjalankan pernyataan SQL. Sebagai contoh, Anda dapat memperoleh nilai minimum dan maksimum, jumlah total, serta 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.