全部产品
Search
文档中心

Tablestore:Kueri Kecocokan

更新时间:Jul 06, 2025

Anda dapat menggunakan kueri kecocokan untuk menanyakan data dalam tabel berdasarkan kecocokan perkiraan. Tablestore melakukan tokenisasi nilai dalam bidang TEXT dan kata kunci yang digunakan untuk kueri kecocokan sesuai dengan jenis analisis yang ditentukan. Dengan cara ini, Tablestore dapat menjalankan kueri kecocokan berdasarkan token. Kami merekomendasikan penggunaan kueri frasa kecocokan untuk bidang TEXT di mana tokenisasi kabur diterapkan guna memastikan performa tinggi dalam kueri kabur.

Prasyarat

Parameter

Parameter

Deskripsi

tableName

Nama tabel data.

indexName

Nama indeks pencarian.

offset

Posisi dari mana kueri saat ini dimulai.

limit

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

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

queryType

Tipe kueri. Untuk menggunakan kueri kecocokan, atur parameter ini ke TableStore.QueryType.MATCH_QUERY.

fieldName

Nama bidang yang ingin Anda cocokkan.

Kueri kecocokan berlaku untuk bidang TEXT.

text

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

Jika bidang yang ingin Anda cocokkan adalah bidang TEXT, kata kunci akan di-tokenisasi menjadi beberapa token berdasarkan tipe analisis yang Anda tentukan saat membuat indeks pencarian. Jika Anda tidak menentukan tipe analisis saat membuat indeks pencarian, tokenisasi satu kata dilakukan.

Sebagai contoh, jika bidang yang ingin Anda cocokkan adalah bidang TEXT, Anda mengatur tipe analisis ke tokenisasi satu kata, dan Anda menggunakan "this is" sebagai kata kunci pencarian, Anda bisa mendapatkan hasil kueri seperti "..., this is tablestore", "is this tablestore", "tablestore is cool", "this", dan "is".

operator

Operator logis. Secara default, OR digunakan sebagai operator logis, yang menentukan bahwa sebuah baris memenuhi kondisi kueri ketika nilai bidang berisi setidaknya jumlah minimum token yang cocok.

Jika Anda mengatur parameter operator ke AND, baris tersebut hanya memenuhi kondisi kueri jika nilai bidang berisi semua token yang cocok.

minimumShouldMatch

Jumlah minimum token yang cocok terkandung dalam nilai bidang.

Sebuah baris dikembalikan hanya jika nilai bidang yang ditentukan oleh parameter fieldName dalam baris tersebut berisi setidaknya jumlah minimum token yang cocok.

Catatan

Anda harus menggunakan parameter minimumShouldMatch bersama dengan operator logis OR.

getTotalCount

Menentukan apakah akan mengembalikan jumlah total baris yang memenuhi kondisi kueri. Nilai default: false.

Jika Anda mengatur parameter ini ke true, performa kueri akan terpengaruh.

columnToGet

Menentukan apakah akan mengembalikan semua kolom dari setiap baris yang memenuhi kondisi kueri. Anda dapat mengonfigurasi returnType dan returnNames untuk parameter ini.

  • Jika Anda mengatur returnType ke TableStore.ColumnReturnType.RETURN_SPECIFIED, Anda perlu mengonfigurasi returnNames untuk menentukan kolom yang ingin Anda kembalikan.

  • Jika Anda mengatur parameter returnType ke TableStore.ColumnReturnType.RETURN_ALL, semua kolom dikembalikan.

  • Jika Anda mengatur parameter returnType ke TableStore.ColumnReturnType.RETURN_ALL_FROM_INDEX, semua kolom dalam indeks pencarian dikembalikan. .

  • Jika Anda mengatur parameter returnType ke TableStore.ColumnReturnType.RETURN_NONE, hanya kolom kunci utama yang dikembalikan.

Contoh

Berikut adalah kode sampel yang menunjukkan cara menanyakan baris di mana nilai kolom Col_Keyword cocok dengan "hangzhou" dalam tabel:

/**
 * Query the rows in which the value of the Col_Keyword column matches "hangzhou" in a table. Tablestore returns the total number of rows that meet the query conditions and the specific data of some of these rows. 
 */
client.search({
    tableName: TABLE_NAME,
    indexName: INDEX_NAME,
    searchQuery: {
        offset: 0,
        limit: 10, // To query only the number of rows that meet the query conditions without specific data, set the limit parameter to 0. 
        query: { // Set the query type to MatchQuery. 
            queryType: TableStore.QueryType.MATCH_QUERY,
            query: {
                fieldName: "Col_Keyword", // Specify the name of the field that you want to match. 
                text: "hangzhou" // Specify the keyword that is used to match the value of the field. 
            }
        },
        getTotalCount: true // Specify whether to return the total number of rows that meet the query conditions. Default value: false. 
    },
    columnToGet: { // Specify the columns that you want to return. You can set the parameter to RETURN_SPECIFIED to return the specified columns, RETURN_ALL to return all columns, RETURN_ALL_FROM_INDEX to return all columns in the search index, or RETURN_NONE to return only the primary key columns. 
        returnType: TableStore.ColumnReturnType.RETURN_ALL
    }
}, function (err, data) {
    if (err) {
        console.log('error:', err);
        return;
    }
    console.log('success:', JSON.stringify(data, null, 2));
});

FAQ

Referensi

  • Jenis kueri berikut didukung oleh indeks pencarian: kueri tepat, kueri terms, kueri cocok semua, kueri kecocokan, kueri frasa kecocokan, kueri awalan, kueri rentang, kueri wildcard, kueri Boolean, kueri geo, kueri nested, kueri vektor, dan kueri exists. Anda dapat memilih tipe kueri sesuai dengan kebutuhan bisnis Anda.

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

    Untuk meruntuhkan set hasil berdasarkan kolom tertentu, Anda dapat menggunakan fitur collapse (distinct). Dengan cara ini, data dari tipe tertentu hanya muncul sekali dalam hasil kueri. Untuk informasi lebih lanjut, lihat Collapse (distinct).

  • Untuk menganalisis data dalam tabel, seperti mendapatkan nilai ekstrem, jumlah, dan total jumlah baris, Anda dapat menggunakan operasi agregasi atau menjalankan pernyataan SQL. Untuk informasi lebih lanjut, lihat Agregasi dan Kueri SQL.

  • Untuk 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.