Ketika Anda menginisiasi permintaan query, Anda dapat mengaktifkan fitur sorot. Dalam hal ini, kata kunci dalam hasil yang memenuhi kondisi query akan disorot. Hanya bidang Teks yang mendukung fitur sorot.
Prasyarat
Sebuah instance OTSClient telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi Klien Tablestore.
Tabel data telah dibuat dan data telah ditulis ke tabel data. Untuk informasi lebih lanjut, lihat Buat Tabel Data dan Tulis Data.
Indeks pencarian telah dibuat untuk tabel data. Untuk informasi lebih lanjut, lihat Buat Indeks Pencarian.
Catatan Penggunaan
Hanya Tablestore SDK for Python 6.0.0 atau versi lebih baru yang menyediakan fitur sorot. Sebelum menggunakan fitur sorot, kami sarankan Anda menginstal versi terbaru dari Tablestore SDK for Python. Untuk informasi tentang versi Tablestore SDK for Python, lihat Riwayat Versi Tablestore SDK for Python.
Jika Anda mengaktifkan fitur sorot dalam query cocok (match query) atau query frasa cocok (match phrase query), kata kunci dalam hasil query akan disorot menggunakan beberapa tag pembuka (pre_tag) dan tag penutup (post_tag).
Jika metode tokenisasi bidang Teks adalah tokenisasi berbasis unit semantik maksimum (MaxWord), fitur sorot tidak didukung ketika Anda melakukan query frasa cocok pada bidang Teks.
Jika kata kunci dalam query dipisahkan, kata kunci tersebut mungkin tidak disorot sesuai harapan.
Parameter
Parameter | Deskripsi | |
highlight_encoder | Metode penyandian fragmen teks yang disorot. Nilai valid:
| |
highlight | Pengaturan sorotan untuk bidang. Anda hanya dapat mengaktifkan fitur sorot untuk bidang yang berisi kata kunci yang ditentukan dalam objek SearchQuery. | |
highlight_parameters | number_of_fragments | Jumlah maksimum fragmen teks yang disorot yang ingin Anda kembalikan. Kami sarankan Anda mengatur parameter ini ke 1. |
fragment_size | Panjang setiap fragmen teks yang ingin Anda kembalikan. Nilai default: 100. Penting Panjang aktual dari fragmen teks yang dikembalikan mungkin berbeda dari nilai parameter ini. | |
pre_tag | Tag pembuka yang digunakan untuk menyorot kata kunci query. Contoh: | |
post_tag | Tag penutup yang digunakan untuk menyorot kata kunci query. Contoh: | |
fragments_order | Aturan pengurutan fragmen teks yang disorot yang ingin Anda kembalikan.
| |
Contoh
Berikut ini adalah contoh kode sampel tentang cara menggunakan fitur MatchQuery untuk menanyakan data yang cocok dengan hangzhou shanghai dari bidang Col_Text dan menyorot kata kunci dalam hasil query. Dalam contoh ini, bidang Col_Text bertipe Teks.
def match_query_with_highlight(client):
query = MatchQuery('Col_Text', 'hangzhou shanghai')
highlight_parameter = HighlightParameter('Col_Text',None,None,pre_tag='')
highlight_clause = Highlight([highlight_parameter],HighlightEncoder.PLAIN_MODE)
search_response = client.search(
'<TABLE_NAME>', '<SEARCH_INDEX_NAME>',
SearchQuery(query, limit=100, get_total_count=True,highlight=highlight_clause),
ColumnsToGet(return_type=ColumnReturnType.ALL)
)
print('----- Cetak Hasil Sorot:')
search_hits = search_response.search_hits
print('jumlah hit pencarian:%d' % len(search_hits))
for search_hit in search_hits:
print('\t skor adalah %.6f' % search_hit.score)
for highlight_field in search_hit.highlight_result.highlight_fields:
print('\t\t sorot:%s:%s' % (highlight_field.field_name, highlight_field.field_fragments))
print('********** Akhir HighlightQuery **********')
Referensi
Untuk informasi tentang fitur highlight, lihat Highlight Keywords.
Untuk informasi tentang cara menggunakan fitur highlight saat Anda melakukan query pada field bersarang, lihat Nested Query.