全部产品
Search
文档中心

Tablestore:Kueri frasa cocok

更新时间:Jul 06, 2025

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

Prasyarat

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 tersebut di-tokenisasi menjadi beberapa token berdasarkan jenis analisis yang Anda tentukan saat membuat indeks pencarian. Jika Anda tidak menentukan jenis analisis saat membuat indeks pencarian, tokenisasi satu kata dilakukan. Untuk informasi lebih lanjut, lihat Tokenisasi.

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

query

Jenis kueri. Atur parameter kueri ke matchPhraseQuery.

offset

Posisi dari mana kueri saat ini dimulai.

limit

Jumlah maksimum baris yang ingin Anda kueri saat ini untuk dikembalikan.

Untuk menanyakan hanya 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 terpengaruh.

weight

Bobot yang ingin Anda tetapkan ke 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 yang 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.

Contoh kode

Contoh kode berikut menunjukkan cara menanyakan baris di mana nilai kolom Col_Text cocok dengan frase "hangzhou shanghai" secara berurutan dalam tabel data:

/**
 * Query the rows in which the value of the Col_Text column matches the whole phrase "hangzhou shanghai" in order in the data table. Tablestore returns the total number of rows that meet the query conditions and the specific data of some of these rows. 
 * @param client
 */
private static void matchPhraseQuery(SyncClient client) {
    SearchQuery searchQuery = new SearchQuery();
    MatchPhraseQuery matchPhraseQuery = new MatchPhraseQuery(); // Set the query type to MatchPhraseQuery. 
    matchPhraseQuery.setFieldName("Col_Text"); // Specify the name of the column to query. 
    matchPhraseQuery.setText("hangzhou shanghai"); // Specify the keyword that you want to match. 
    searchQuery.setQuery(matchPhraseQuery);
    searchQuery.setOffset(0); // Set the offset parameter to 0. 
    searchQuery.setLimit(20); // Set limit to 20 to return up to 20 rows. 
    //searchQuery.setGetTotalCount(true); // Specify that the total number of matched rows is returned. 

    SearchRequest searchRequest = new SearchRequest("<TABLE_NAME>", "<SEARCH_INDEX_NAME>", searchQuery); 
    // You can configure the columnsToGet parameter to specify the columns to return or specify that all columns are returned. If you do not configure this parameter, only the primary key columns are returned. 
    //SearchRequest.ColumnsToGet columnsToGet = new SearchRequest.ColumnsToGet();
    //columnsToGet.setReturnAll(true); // Specify that all columns are returned. 
    //columnsToGet.setColumns(Arrays.asList("ColName1","ColName2")); // Specify the columns that you want to return. 
    //searchRequest.setColumnsToGet(columnsToGet);

    SearchResponse resp = client.search(searchRequest);
    //System.out.println("TotalCount: " + resp.getTotalCount()); // Specify that the total number of matched rows instead of the number of returned rows is displayed. 
    System.out.println("Row: " + resp.getRows());
}

FAQ

Referensi

  • Saat menggunakan indeks pencarian untuk menanyakan data, Anda dapat menggunakan metode kueri berikut: kueri tepat, kueri terms, kueri cocok semua, kueri cocok, kueri frasa cocok, kueri awalan, kueri rentang, kueri wildcard, kueri geo, kueri vektor KNN, kueri Boolean, kueri bersarang, 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 Lakukan Pengurutan dan Paging.

    Anda dapat menggunakan fitur collapse (distinct) untuk meruntuhkan set hasil berdasarkan kolom tertentu. Dengan cara ini, data 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 menggunakan fitur kueri SQL. Sebagai contoh, Anda dapat menanyakan nilai maksimum dan minimum, jumlah nilai, dan 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.