All Products
Search
Document Center

Tablestore:Match query

Last Updated:Aug 07, 2026

Gunakan Tablestore SDK for Python untuk melakukan pencarian teks lengkap pada bidang Text atau Keyword, serta mengembalikan data yang sesuai.

Prasyarat

Instal Tablestore SDK for Python dan inisialisasi klien.

Deskripsi

Kueri match mencari pada bidang Text atau Keyword (lihat String types). Untuk bidang Text, teks kueri di-tokenisasi oleh alat analisis bidang tersebut, dan parameter operator atau minimum_should_match menentukan token mana yang harus cocok. Untuk bidang Keyword, teks kueri tidak di-tokenisasi. Kueri match tidak mensyaratkan token muncul secara berurutan atau sesuai urutan dalam teks kueri. Untuk mencocokkan urutan dan posisi token, gunakan Match phrase query.

MatchQuery(
    field_name,
    text,
    minimum_should_match=None,
    operator=None,
    weight=None,
)

Contoh berikut mengkueri baris-baris yang bidang description-nya mengandung kedua token tablestore dan durable.

query = MatchQuery(
    "description",
    "tablestore durable",
    operator=QueryOperator.AND,
)
response = client.search(
    "example_table",
    "example_index",
    SearchQuery(
        query,
        sort=Sort([ScoreSort()]),
        limit=10,
        get_total_count=True,
    ),
    ColumnsToGet(return_type=ColumnReturnType.ALL),
)
for hit in response.search_hits:
    print(hit.score, hit.row)

Parameter

Permintaan pencarian

Metode search mencakup parameter-parameter berikut.

Nama

Tipe

Deskripsi

table_name (wajib)

str

Nama tabel data.

index_name (wajib)

str

Nama indeks pencarian.

search_query (wajib)

SearchQuery

Kondisi kueri dan konfigurasi kueri umum.

columns_to_get (opsional)

ColumnsToGet

Konfigurasi kolom yang dikembalikan. Jika parameter ini tidak ditentukan, hanya kolom kunci primer yang dikembalikan.

routing_keys (opsional)

list

Nilai kunci primer dari bidang routing kustom. Parameter ini tidak diperlukan jika routing kustom tidak dikonfigurasi.

timeout_s (opsional)

int

Timeout permintaan dalam detik. Jika parameter ini tidak ditentukan, timeout tingkat client yang digunakan.

Konfigurasi kueri

search_query bertipe SearchQuery dan mencakup parameter-parameter berikut.

Nama

Tipe

Deskripsi

query (wajib)

Query

Kondisi kueri. Atur parameter ini ke MatchQuery.

sort (opsional)

Sort

Urutan pengurutan hasil. Untuk informasi selengkapnya, lihat Sort and paginate results.

get_total_count (opsional)

bool

Menentukan apakah jumlah total baris yang sesuai dikembalikan. Nilai default: False. Mengatur parameter ini ke True meningkatkan beban kueri.

next_token (opsional)

bytes

Token paginasi. Teruskan next_token dari respons sebelumnya untuk mengambil halaman berikutnya.

offset (opsional)

int

Offset tempat kueri dimulai. Gunakan parameter ini untuk paginasi dangkal.

limit (opsional)

int

Jumlah maksimum baris yang dikembalikan. Jika parameter ini diatur ke 0, tidak ada baris yang dikembalikan.

aggs (opsional)

list[Agg]

Konfigurasi agregasi metrik. Untuk informasi selengkapnya, lihat Aggregation.

group_bys (opsional)

list[BaseGroupBy]

Konfigurasi pengelompokan. Untuk informasi selengkapnya, lihat Aggregation.

collapse_field (opsional)

Collapse

Konfigurasi collapse hasil. Untuk informasi selengkapnya, lihat Collapse query results.

highlight (opsional)

Highlight

Konfigurasi ringkasan dan penyorotan untuk bidang Text. Untuk informasi selengkapnya, lihat Summary and highlighting.

Kondisi match

search_query.query bertipe MatchQuery dan mencakup parameter-parameter berikut.

Nama

Tipe

Deskripsi

field_name (wajib)

str

Nama bidang Text atau Keyword yang akan dikueri.

text (wajib)

str

Teks kueri. Teks ini di-tokenisasi untuk bidang Text dan tidak di-tokenisasi untuk bidang Keyword.

minimum_should_match (opsional)

int

Jumlah minimum token kueri yang harus cocok ketika operator bernilai OR.

operator (opsional)

QueryOperator

Mode kombinasi token. OR (default) mencocokkan token apa pun, sedangkan AND mengharuskan semua token cocok.

weight (opsional)

float

Bobot kueri, yang harus berupa bilangan titik mengambang positif. Nilai default: 1.0. Bobot ini memengaruhi skor relevansi tetapi tidak memengaruhi kecocokan.

Kolom yang dikembalikan

columns_to_get bertipe ColumnsToGet dan mencakup parameter-parameter berikut.

Nama

Tipe

Deskripsi

column_names (opsional)

list[str]

Nama kolom atribut yang dikembalikan. Tentukan parameter ini hanya ketika return_type bernilai SPECIFIED.

return_type (opsional)

ColumnReturnType

Mode kolom yang dikembalikan. NONE (default) hanya mengembalikan kolom kunci primer; SPECIFIED mengembalikan kolom atribut yang ditentukan; ALL mengembalikan semua kolom atribut dalam tabel; dan ALL_FROM_INDEX mengembalikan semua bidang yang disimpan dalam indeks.

Respons

Metode search mengembalikan objek SearchResponse. Tabel berikut menjelaskan bidang intinya.

Bidang

Type

Deskripsi

rows

list[Row]

Baris yang dikembalikan oleh kueri. Jumlahnya tidak melebihi limit.

next_token

bytes

Token untuk halaman berikutnya. Nilai kosong menunjukkan tidak ada data tambahan yang tersedia.

total_count

int

Jumlah baris yang cocok. Nilainya bergantung pada get_total_count.

is_all_succeed

bool

Menunjukkan apakah semua partisi indeks telah dikueri. Jika nilainya False, hasil parsial dikembalikan.

agg_results

list[AggResult]

Hasil agregasi metrik. Bidang ini kosong jika aggs tidak dikonfigurasi.

group_by_results

list[GroupByResult]

Hasil pengelompokan. Bidang ini kosong jika group_bys tidak dikonfigurasi.

search_hits

list[SearchHit]

Hasil pencarian, termasuk informasi tambahan seperti baris, skor relevansi, dan sorotan.

Respons kompatibel tupel

Mulai Tablestore SDK for Python versi 5.2.0, API pencarian mengembalikan objek respons, bukan tupel. Versi 5.1.0 dan sebelumnya mengembalikan tupel secara langsung. Pada versi 5.2.1 dan seterusnya, Anda dapat memanggil SearchResponse.v1_response() untuk mendapatkan tupel yang kompatibel dengan versi sebelumnya. Untuk kode baru, akses atribut SearchResponse secara langsung guna menghindari kesalahan unpacking jika bidang respons diperluas.

(
    rows,
    next_token,
    total_count,
    is_all_succeed,
    agg_results,
    group_by_results,
    search_hits,
) = response.v1_response()

Contoh

Menentukan jumlah minimum token yang cocok

Contoh berikut mensyaratkan minimal dua token dari teks kueri yang telah di-tokenisasi agar cocok.

query = MatchQuery(
    "description",
    "tablestore durable cloud",
    operator=QueryOperator.OR,
    minimum_should_match=2,
)
response = client.search(
    "example_table",
    "example_index",
    SearchQuery(query, limit=10),
)
print(response.rows)