全部产品
Search
文档中心

Tablestore:Kueri Cocok

更新时间:Jul 02, 2025

Kueri cocok digunakan untuk menanyakan data dalam tabel berdasarkan kecocokan perkiraan. Tablestore melakukan tokenisasi nilai di kolom TEXT dan kata kunci yang digunakan dalam kueri cocok sesuai dengan jenis analisis yang ditentukan. Dengan demikian, Tablestore dapat menjalankan kueri cocok berdasarkan token. Disarankan untuk menggunakan kueri frase cocok pada kolom dengan tokenisasi fuzzy guna memastikan performa tinggi dalam kueri fuzzy.

Prasyarat

Parameter

Parameter

Deskripsi

field_name

Nama kolom yang ingin Anda tanyakan.

Kueri cocok berlaku untuk kolom TEXT.

text

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

Jika kolom yang ingin Anda tanyakan adalah kolom TEXT, kata kunci tersebut akan di-tokenisasi menjadi beberapa token berdasarkan jenis analisis yang Anda tentukan saat membuat indeks pencarian. Secara default, tokenisasi satu kata dilakukan jika Anda tidak menentukan jenis analisis saat membuat indeks pencarian.

Sebagai contoh, jika kolom yang ingin Anda cocokkan adalah kolom TEXT, Anda mengatur jenis analisis ke tokenisasi satu kata, dan Anda menggunakan "this is" sebagai kata kunci pencarian, Anda dapat memperoleh hasil kueri seperti "..., this is tablestore", "is this tablestore", "tablestore is cool", "this", dan "is".

query

Jenis kueri. Atur parameter ini ke MatchQuery.

table_name

Nama tabel data.

index_name

Nama indeks pencarian.

limit

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

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

operator

Operator logika. Secara default, OR digunakan sebagai operator logika. Operator ini menentukan bahwa sebuah baris memenuhi kondisi kueri ketika nilai kolom berisi setidaknya jumlah minimum token.

Jika Anda mengatur parameter operator ke AND, baris tersebut hanya memenuhi kondisi kueri ketika nilai kolom berisi semua token.

minimum_should_match

Jumlah minimum token yang cocok yang terkandung dalam nilai kolom.

Sebuah baris dikembalikan hanya ketika nilai kolom yang ditanyakan dalam baris tersebut berisi setidaknya jumlah minimum token kata kunci yang cocok.

Catatan

Parameter minimum_should_match harus digunakan dengan operator logika OR.

get_total_count

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, performa kueri akan terpengaruh.

columns_to_get

Menentukan apakah akan mengembalikan semua kolom dari setiap baris yang memenuhi kondisi kueri.

  • Jika Anda mengatur bidang return_type ke ColumnReturnType.SPECIFIED, Anda dapat menggunakan bidang column_names untuk menentukan kolom-kolom yang ingin Anda kembalikan.

  • Jika Anda mengatur bidang return_type ke ColumnReturnType.ALL, semua kolom dikembalikan.

  • Jika Anda mengatur bidang return_type ke ColumnReturnType.NONE, hanya kolom kunci utama yang dikembalikan.

Contoh

Contoh berikut menunjukkan cara menanyakan baris di mana nilai kolom Col_Keyword secara perkiraan cocok dengan 'this is'.

  • Melakukan kueri cocok menggunakan Tablestore SDK untuk Python V5.2.1 atau yang lebih baru

    Jika Anda menggunakan Tablestore SDK untuk Python V5.2.1 atau yang lebih baru untuk melakukan kueri cocok, objek SearchResponse dikembalikan secara default. Kode berikut menunjukkan permintaan sampel:

    query = MatchQuery('Col_Keyword', 'this is')
    search_response = client.search(
        '<TABLE_NAME>', '<SEARCH_INDEX_NAME>', 
        SearchQuery(query, limit=100, get_total_count=True), 
        ColumnsToGet(return_type=ColumnReturnType.ALL)
    )
    print('request_id : %s' % search_response.request_id)
    print('is_all_succeed : %s' % search_response.is_all_succeed)
    print('total_count : %s' % search_response.total_count)
    print('rows : %s' % search_response.rows)
    
    # # Jika diperlukan paging mendalam, kami sarankan Anda menggunakan parameter next_token karena metode ini tidak memiliki batasan pada kedalaman paging. 
    # all_rows = []
    # next_token = None
    # # putaran pertama
    # search_response = client.search(
    #     '<TABLE_NAME>', '<SEARCH_INDEX_NAME>',
    #     SearchQuery(query, next_token=next_token, limit=100, get_total_count=True),
    #     columns_to_get=ColumnsToGet(return_type=ColumnReturnType.ALL))
    # all_rows.extend(search_response.rows)
    # 
    # # loop
    # while search_response.next_token:
    #     search_response = client.search(
    #         '<TABLE_NAME>', '<SEARCH_INDEX_NAME>',
    #         SearchQuery(query, next_token=search_response.next_token, limit=100, get_total_count=True),
    #         columns_to_get=ColumnsToGet(return_type=ColumnReturnType.ALL))
    #     all_rows.extend(search_response.rows)
    # print('Total rows:%s' % len(all_rows))

    Gunakan permintaan sampel berikut untuk mengembalikan hasil tipe Tuple:

    query = MatchQuery('Col_Keyword', 'this is')
    rows, next_token, total_count, is_all_succeed, agg_results, group_by_results = client.search(
        '<TABLE_NAME>', '<SEARCH_INDEX_NAME>', 
        SearchQuery(query, limit=100, get_total_count=True), 
        ColumnsToGet(return_type=ColumnReturnType.ALL)
    ).v1_response()
  • Melakukan kueri cocok menggunakan Tablestore SDK untuk Python versi sebelum 5.2.1

    Jika Anda menggunakan versi Tablestore SDK untuk Python yang lebih lama dari 5.2.1 untuk melakukan kueri cocok, hasil tipe TUPLE dikembalikan secara default. Contoh kode berikut memberikan permintaan sampel:

    query = MatchQuery('Col_Keyword', 'this is')
    rows, next_token, total_count, is_all_succeed = client.search(
        '<TABLE_NAME>', '<SEARCH_INDEX_NAME>', 
        SearchQuery(query, limit=100, get_total_count=True), 
        ColumnsToGet(return_type=ColumnReturnType.ALL)
    )

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 frase cocok, kueri awalan, kueri rentang, kueri wildcard, kueri geo, kueri Boolean, kueri vektor KNN, kueri bersarang, dan kueri eksistensi. 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 pemisahan halaman. Untuk informasi lebih lanjut, lihat Pengurutan dan pemisahan halaman.

    Anda dapat menggunakan fitur collapse (distinct) untuk meruntuhkan 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 operasi Search atau menjalankan pernyataan SQL. Sebagai contoh, Anda dapat memperoleh nilai minimum dan maksimum, jumlah, dan jumlah total baris. Untuk informasi lebih lanjut, lihat Agregasi dan Kueri SQL.

  • Jika Anda ingin memperoleh semua baris yang memenuhi kondisi kueri tanpa perlu mengurutkan baris-baris tersebut, Anda dapat memanggil operasi ParallelScan dan ComputeSplits untuk menggunakan fitur pemindaian paralel. Untuk informasi lebih lanjut, lihat Pemindaian paralel.