All Products
Search
Document Center

Tablestore:Prefix query

Last Updated:Aug 07, 2026

Gunakan Tablestore SDK for Python untuk mencocokkan nilai bidang atau token yang diawali dengan string tertentu.

Prasyarat

Instal Tablestore SDK for Python dan inisialisasi klien.

Deskripsi

Prefix query mencocokkan nilai bidang atau token yang diawali dengan string kueri. Untuk bidang Keyword, seluruh nilai bidang harus diawali dengan string kueri. Untuk bidang Text, suatu baris cocok jika salah satu tokennya diawali dengan string kueri. String kueri tidak ditokenisasi dan pencocokan bersifat case-sensitive. Saat memanggil metode search, atur jenis kueri menjadi PrefixQuery. Untuk informasi mengenai jenis bidang, lihat String types.

PrefixQuery(field_name, prefix, weight=None)

Contoh berikut melakukan kueri terhadap baris-baris yang bidang category-nya diawali dengan book- dan mengembalikan maksimal 10 baris serta jumlah total baris yang cocok.

query = PrefixQuery("category", "book-")
search_query = SearchQuery(
    query,
    limit=10,
    get_total_count=True,
)
response = client.search(
    "example_table",
    "example_index",
    search_query,
    ColumnsToGet(return_type=ColumnReturnType.ALL),
)
print(response.total_count)
for row in response.rows:
    print(row)

Parameter

Permintaan pencarian

Metode search mencakup parameter berikut.

Name

Type

Description

table_name (required)

str

Nama tabel data.

index_name (required)

str

Nama indeks pencarian.

search_query (required)

SearchQuery

Kondisi kueri dan konfigurasi kueri umum.

columns_to_get (optional)

ColumnsToGet

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

routing_keys (optional)

list

Daftar nilai kunci primer untuk bidang routing kustom. Anda tidak perlu menentukan parameter ini jika routing kustom tidak dikonfigurasi.

timeout_s (optional)

int

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

Konfigurasi kueri

search_query bertipe SearchQuery dan mencakup parameter berikut.

Name

Type

Description

query (required)

Query

Kondisi kueri. Atur parameter ini ke PrefixQuery.

sort (optional)

Sort

Urutan pengurutan hasil kueri. Untuk informasi lebih lanjut, lihat Sort and paginate results.

get_total_count (optional)

bool

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

next_token (optional)

bytes

Token paginasi. Atur parameter ini ke next_token dari respons sebelumnya untuk mengambil halaman berikutnya. Untuk informasi lebih lanjut, lihat Sort and paginate results.

offset (optional)

int

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

limit (optional)

int

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

aggs (optional)

list[Agg]

Konfigurasi agregasi. Untuk informasi lebih lanjut, lihat Aggregation.

group_bys (optional)

list[BaseGroupBy]

Konfigurasi pengelompokan. Untuk informasi lebih lanjut, lihat Aggregation.

collapse_field (optional)

Collapse

Konfigurasi collapsing hasil, yang menghapus hasil duplikat berdasarkan bidang tertentu. Untuk informasi lebih lanjut, lihat Collapse query results.

highlight (optional)

Highlight

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

Kondisi kueri

search_query.query bertipe PrefixQuery dan mencakup parameter berikut.

Name

Type

Description

field_name (required)

str

Nama bidang Keyword atau Text yang akan dikueri.

prefix (required)

str

String kueri. Untuk bidang Keyword, nilai bidang harus diawali dengan string tersebut. Untuk bidang Text, salah satu token harus diawali dengan string tersebut. String tidak ditokenisasi. Pencocokan bersifat case-sensitive.

weight (optional)

float

Bobot relevansi kondisi kueri. Nilainya harus berupa bilangan titik mengambang positif. Parameter ini tidak memengaruhi pencocokan atau jumlah baris yang dikembalikan. Parameter ini hanya memengaruhi urutan ketika hasil diurutkan berdasarkan skor relevansi. Nilai default: 1.0.

Kolom yang dikembalikan

columns_to_get bertipe ColumnsToGet dan mencakup parameter berikut.

Name

Type

Description

column_names (optional)

list[str]

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

return_type (optional)

ColumnReturnType

Mode kolom yang dikembalikan. NONE (default) hanya mengembalikan kolom kunci primer; SPECIFIED mengembalikan kolom atribut dalam column_names; ALL mengembalikan semua kolom atribut dari tabel; dan ALL_FROM_INDEX mengembalikan semua kolom atribut yang diindeks.

Respons

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

Field

Type

Description

rows

list[Row]

Baris-baris yang dikembalikan oleh kueri saat ini. Jumlah baris tidak melebihi limit.

next_token

bytes

Token untuk halaman berikutnya. Jika bidang ini tidak kosong, berikan ke permintaan berikutnya untuk melanjutkan pembacaan.

total_count

int

Jumlah baris yang cocok. Nilainya bergantung pada konfigurasi get_total_count.

is_all_succeed

bool

Menunjukkan apakah semua partisi indeks telah dikueri. Jika nilainya False, hasil parsial dikembalikan dan total_count mungkin kurang dari jumlah aktual baris yang cocok.

agg_results

list[AggResult]

Hasil agregasi. 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 skor relevansi, sorotan, dan baris anak yang cocok.

Respons kompatibel Tupel

Mulai dari 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. Di 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 error unpacking jika bidang respons diperluas.

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