Gunakan Tablestore SDK for Python untuk mengkueri bidang Text berdasarkan urutan dan posisi token.
Prasyarat
Instal Tablestore SDK for Python dan inisialisasi klien.
Deskripsi
Kueri match phrase mencari bidang Text (lihat String types) untuk token yang muncul dalam urutan dan posisi tertentu. Baik nilai bidang maupun teks kueri ditokenisasi oleh alat analisis yang dikonfigurasi untuk indeks pencarian. Berbeda dengan Match query, yang hanya memeriksa kecocokan token, kueri match phrase juga memverifikasi urutan dan posisi token tersebut. Gunakan parameter slop untuk mengizinkan celah antara token yang berdekatan.
MatchPhraseQuery(field_name, text, weight=None, slop=None)
Contoh berikut mengkueri baris di mana bidang description berisi token tablestore dan durable secara berurutan dan berdampingan.
query = MatchPhraseQuery("description", "tablestore durable")
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 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) |
|
Nilai kunci primer dari bidang routing kustom. Parameter ini tidak diperlukan 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. Untuk informasi selengkapnya, lihat Sort and paginate results. |
|
get_total_count (optional) |
|
Menentukan apakah jumlah total baris yang cocok dikembalikan. Nilai default: |
|
next_token (optional) |
|
Token paginasi. Teruskan |
|
offset (optional) |
|
Offset tempat kueri dimulai. Gunakan parameter ini untuk paginasi dangkal. |
|
limit (optional) |
|
Jumlah maksimum baris yang dikembalikan. Jika parameter ini diatur ke |
|
aggs (optional) |
|
Konfigurasi agregasi metrik. Untuk informasi selengkapnya, lihat Aggregation. |
|
group_bys (optional) |
|
Konfigurasi pengelompokan. Untuk informasi selengkapnya, lihat Aggregation. |
|
collapse_field (optional) |
|
Konfigurasi collapse hasil. Untuk informasi selengkapnya, lihat Collapse query results. |
|
highlight (optional) |
|
Konfigurasi ringkasan dan penyorotan untuk bidang |
Kondisi match phrase
search_query.query bertipe MatchPhraseQuery dan mencakup parameter berikut.
|
Name |
Type |
Description |
|
field_name (required) |
|
Nama bidang |
|
text (required) |
|
Teks kueri. Teks ini ditokenisasi oleh alat analisis bidang dan dicocokkan berdasarkan urutan dan posisi token. |
|
weight (optional) |
|
Bobot kueri, yang harus berupa bilangan titik mengambang positif. Nilai default: |
|
slop (optional) |
|
Celah posisi maksimum yang diizinkan antara token kueri yang berdekatan. Nilai default: |
Kolom yang dikembalikan
columns_to_get bertipe ColumnsToGet dan mencakup parameter berikut.
|
Name |
Type |
Description |
|
column_names (optional) |
|
Nama kolom atribut yang dikembalikan. Tentukan parameter ini hanya ketika |
|
return_type (optional) |
|
Mode kolom yang dikembalikan. |
Respons
Metode search mengembalikan objek SearchResponse. Tabel berikut menjelaskan bidang utamanya.
|
Field |
Type |
Description |
|
rows |
|
Baris yang dikembalikan oleh kueri. Jumlahnya tidak melebihi |
|
next_token |
|
Token untuk halaman berikutnya. Nilai kosong menunjukkan bahwa tidak ada data tambahan. |
|
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. 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()