Gunakan Tablestore SDK untuk Python untuk mencocokkan semua baris dalam indeks pencarian dan mengembalikan baris yang cocok atau jumlah total baris yang sesuai.
Prasyarat
Instal Tablestore SDK untuk Python dan inisialisasi klien.
Deskripsi
Pencocokan semua kueri mencocokkan seluruh data dalam indeks pencarian tanpa kondisi berbasis bidang atau nilai. Saat memanggil metode search, atur jenis kueri menjadi MatchAllQuery.
MatchAllQuery()
Contoh berikut mencocokkan semua baris dalam indeks pencarian dan mengembalikan hingga 10 baris serta jumlah total baris yang cocok.
query = MatchAllQuery()
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)
MatchAllQuery memberikan skor relevansi yang sama kepada semua baris yang cocok. Jika tidak ada urutan pengurutan yang ditentukan, urutan baris yang dikembalikan tidak dijamin. Untuk hanya mengambil jumlah total baris yang cocok, atur limit menjadi 0. Mengaktifkan pelacakan jumlah total meningkatkan beban kueri.
Parameter
Permintaan pencarian
Metode search mencakup parameter berikut.
|
Name |
Type |
Description |
|
table_name (required) |
|
Nama tabel data. |
|
index_name (required) |
|
Nama indeks pencarian. |
|
search_query (required) |
|
Kondisi kueri dan konfigurasi kueri umum. |
|
columns_to_get (optional) |
|
Konfigurasi kolom yang dikembalikan. Jika parameter ini tidak ditentukan, hanya kolom kunci primer yang dikembalikan. |
|
routing_keys (optional) |
|
Daftar nilai kunci primer untuk bidang routing kustom. Anda tidak perlu menentukan parameter ini jika routing kustom tidak dikonfigurasi. |
|
timeout_s (optional) |
|
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) |
|
Kondisi kueri. Atur parameter ini ke |
|
sort (optional) |
|
Urutan pengurutan hasil kueri. Untuk informasi lebih lanjut, lihat Sort and paginate results. |
|
get_total_count (optional) |
|
Menentukan apakah akan mengembalikan jumlah total baris yang cocok. Nilai default: |
|
next_token (optional) |
|
Token paginasi. Atur parameter ini ke |
|
offset (optional) |
|
Offset tempat kueri saat ini dimulai. Gunakan parameter ini untuk paginasi dangkal. |
|
limit (optional) |
|
Jumlah maksimum baris yang dikembalikan. Jika parameter ini diatur ke |
|
aggs (optional) |
|
Konfigurasi agregasi. Untuk informasi lebih lanjut, lihat Aggregation. |
|
group_bys (optional) |
|
Konfigurasi pengelompokan. Untuk informasi lebih lanjut, lihat Aggregation. |
|
collapse_field (optional) |
|
Konfigurasi collapsing hasil, yang menghapus hasil duplikat berdasarkan bidang tertentu. Untuk informasi lebih lanjut, lihat Collapse query results. |
Kondisi kueri
search_query.query bertipe MatchAllQuery dan tidak memiliki parameter tambahan.
Kolom yang dikembalikan
columns_to_get bertipe ColumnsToGet dan mencakup parameter berikut.
|
Name |
Type |
Description |
|
column_names (optional) |
|
Nama kolom atribut yang akan dikembalikan. Tentukan parameter ini hanya ketika |
|
return_type (optional) |
|
Mode kolom yang dikembalikan. |
Respons
Metode search mengembalikan SearchResponse. Tabel berikut menjelaskan field inti.
|
Field |
Type |
Description |
|
rows |
|
Baris yang dikembalikan oleh kueri saat ini. Jumlah baris tidak melebihi |
|
next_token |
|
Token untuk halaman berikutnya. Jika field ini tidak kosong, teruskan ke permintaan berikutnya untuk melanjutkan pembacaan. |
|
total_count |
|
Jumlah baris yang cocok. Nilainya bergantung pada konfigurasi |
|
is_all_succeed |
|
Menunjukkan apakah semua partisi indeks telah dikueri. Jika nilainya |
|
agg_results |
|
Hasil agregasi. Field ini kosong jika |
|
group_by_results |
|
Hasil pengelompokan. Field ini kosong jika |
|
search_hits |
|
Hit pencarian, termasuk informasi tambahan seperti skor relevansi, sorotan, dan baris anak yang cocok. |
Respons kompatibel tupel
Mulai dari Tablestore SDK untuk Python versi 5.2.0, API pencarian mengembalikan objek respons, bukan tupel. Versi 5.1.0 dan sebelumnya langsung mengembalikan tupel. 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 field respons diperluas.
(
rows,
next_token,
total_count,
is_all_succeed,
agg_results,
group_by_results,
search_hits,
) = response.v1_response()