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) |
|
Nama tabel data. |
|
index_name (wajib) |
|
Nama indeks pencarian. |
|
search_query (wajib) |
|
Kondisi kueri dan konfigurasi kueri umum. |
|
columns_to_get (opsional) |
|
Konfigurasi kolom yang dikembalikan. Jika parameter ini tidak ditentukan, hanya kolom kunci primer yang dikembalikan. |
|
routing_keys (opsional) |
|
Nilai kunci primer dari bidang routing kustom. Parameter ini tidak diperlukan jika routing kustom tidak dikonfigurasi. |
|
timeout_s (opsional) |
|
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) |
|
Kondisi kueri. Atur parameter ini ke |
|
sort (opsional) |
|
Urutan pengurutan hasil. Untuk informasi selengkapnya, lihat Sort and paginate results. |
|
get_total_count (opsional) |
|
Menentukan apakah jumlah total baris yang sesuai dikembalikan. Nilai default: |
|
next_token (opsional) |
|
Token paginasi. Teruskan |
|
offset (opsional) |
|
Offset tempat kueri dimulai. Gunakan parameter ini untuk paginasi dangkal. |
|
limit (opsional) |
|
Jumlah maksimum baris yang dikembalikan. Jika parameter ini diatur ke |
|
aggs (opsional) |
|
Konfigurasi agregasi metrik. Untuk informasi selengkapnya, lihat Aggregation. |
|
group_bys (opsional) |
|
Konfigurasi pengelompokan. Untuk informasi selengkapnya, lihat Aggregation. |
|
collapse_field (opsional) |
|
Konfigurasi collapse hasil. Untuk informasi selengkapnya, lihat Collapse query results. |
|
highlight (opsional) |
|
Konfigurasi ringkasan dan penyorotan untuk bidang |
Kondisi match
search_query.query bertipe MatchQuery dan mencakup parameter-parameter berikut.
|
Nama |
Tipe |
Deskripsi |
|
field_name (wajib) |
|
Nama bidang |
|
text (wajib) |
|
Teks kueri. Teks ini di-tokenisasi untuk bidang |
|
minimum_should_match (opsional) |
|
Jumlah minimum token kueri yang harus cocok ketika |
|
operator (opsional) |
|
Mode kombinasi token. |
|
weight (opsional) |
|
Bobot kueri, yang harus berupa bilangan titik mengambang positif. Nilai default: |
Kolom yang dikembalikan
columns_to_get bertipe ColumnsToGet dan mencakup parameter-parameter berikut.
|
Nama |
Tipe |
Deskripsi |
|
column_names (opsional) |
|
Nama kolom atribut yang dikembalikan. Tentukan parameter ini hanya ketika |
|
return_type (opsional) |
|
Mode kolom yang dikembalikan. |
Respons
Metode search mengembalikan objek SearchResponse. Tabel berikut menjelaskan bidang intinya.
|
Bidang |
Type |
Deskripsi |
|
rows |
|
Baris yang dikembalikan oleh kueri. Jumlahnya tidak melebihi |
|
next_token |
|
Token untuk halaman berikutnya. Nilai kosong menunjukkan tidak ada data tambahan yang tersedia. |
|
total_count |
|
Jumlah baris yang cocok. Nilainya bergantung pada |
|
is_all_succeed |
|
Menunjukkan apakah semua partisi indeks telah dikueri. Jika nilainya |
|
agg_results |
|
Hasil agregasi metrik. Bidang ini kosong jika |
|
group_by_results |
|
Hasil pengelompokan. Bidang ini kosong jika |
|
search_hits |
|
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)