All Products
Search
Document Center

Tablestore:Ringkasan dan penyorotan

Last Updated:Aug 07, 2026

Gunakan Tablestore SDK untuk Python untuk mengembalikan fragmen bidang Text yang berisi token yang cocok dan menandai token tersebut.

Prasyarat

Instal Tablestore SDK untuk Python dan inisialisasi klien.

Fitur ringkasan dan penyorotan memerlukan SDK versi 6.0.0 atau lebih baru. Disarankan untuk menggunakan versi SDK terbaru.

Saat membuat search index, atur enable_highlighting ke True untuk bidang Text target.

Deskripsi

Ringkasan dan penyorotan mengekstraksi fragmen teks di sekitar token yang cocok serta menandainya dengan pre-tag dan post-tag. Fitur ini hanya mendukung bidang Text. Dalam kueri, gunakan SearchQuery.highlight untuk menentukan bidang dan konfigurasi fragmen.

Tablestore SDK untuk Python versi 6.4.6 mendukung ringkasan dan penyorotan untuk TermQuery, TermsQuery, PrefixQuery, WildcardQuery, RangeQuery, BoolQuery, MatchQuery, dan MatchPhraseQuery. Untuk BoolQuery, Anda dapat menyoroti bidang yang digunakan oleh tipe sub-kueri yang didukung. Untuk NestedQuery, konfigurasikan penyorotan pada baris anak yang cocok melalui InnerHits.highlight. Untuk informasi selengkapnya, lihat Nested query.

Catatan

Dengan MatchQuery atau MatchPhraseQuery, sebuah token yang cocok dapat ditandai oleh beberapa pasang pre-tag dan post-tag. MatchPhraseQuery tidak mendukung penyorotan untuk bidang Text yang menggunakan alat analisis semantik maksimum. Batas fragmen dapat memotong token yang cocok sehingga mencegah token tersebut disorot.

Contoh berikut melakukan kueri terhadap token tablestore dalam bidang description dan menandai token yang cocok dalam fragmen dengan <b> dan </b>.

query = MatchQuery("description", "tablestore")
highlight = Highlight(
    [
        HighlightParameter(
            "description",
            number_of_fragments=1,
            fragment_size=100,
            pre_tag="",
            post_tag="",
        )
    ],
    HighlightEncoder.PLAIN_MODE,
)
response = client.search(
    "example_table",
    "example_index",
    SearchQuery(query, limit=10, highlight=highlight),
)
for hit in response.search_hits:
    for field in hit.highlight_result.highlight_fields:
        print(field.field_name, field.field_fragments)

Parameter

search_query.highlight bertipe Highlight. Tabel berikut menggunakan path lengkap untuk menjelaskan dua tingkat konfigurasi Highlight dan HighlightParameter.

Nama

Tipe

Deskripsi

highlight_parameters (wajib)

list[HighlightParameter]

Konfigurasi fragmen yang disorot untuk bidang. Setiap bidang harus memiliki penyorotan diaktifkan dan berpartisipasi dalam tipe kueri yang mendukung penyorotan.

highlight_encoder (opsional)

HighlightEncoder

Mode pengkodean teks fragmen. PLAIN_MODE (default) tidak mengkodekan teks. HTML_MODE meng-escape karakter <, >, ", ', dan / menjadi &lt;, &gt;, &quot;, &#x27;, dan &#x2F; secara berurutan, serta cocok untuk tampilan web.

highlight_parameters[].field_name (wajib)

str

Nama bidang Text yang akan dikembalikan fragmen dan sorotannya.

highlight_parameters[].number_of_fragments (opsional)

int

Jumlah maksimum fragmen yang dikembalikan untuk suatu bidang. Kami merekomendasikan nilai 1.

highlight_parameters[].fragment_size (opsional)

int

Panjang target fragmen. Nilai default: 100. Panjang aktual dapat berbeda.

highlight_parameters[].pre_tag (opsional)

str

Pre-tag untuk token yang cocok. Nilai default: <em>. Tentukan parameter ini bersama dengan post_tag. Tag dapat berisi karakter <, >, ", ', /, a-z, A-Z, dan 0-9.

highlight_parameters[].post_tag (opsional)

str

Post-tag untuk token yang cocok. Nilai default: </em>. Tentukan parameter ini bersama dengan pre_tag. Tag dapat berisi karakter <, >, ", ', /, a-z, A-Z, dan 0-9.

highlight_parameters[].fragments_order (opsional)

HighlightFragmentOrder

Urutan pengurutan fragmen. TEXT_SEQUENCE (default) mengurutkan berdasarkan posisi teks asli, sedangkan SCORE mengurutkan berdasarkan skor relevansi token.

Respons

Hasil penyorotan tersedia di SearchResponse.search_hits[].highlight_result dan memiliki struktur berikut.

Bidang

Tipe

Deskripsi

search_hits

list[SearchHit]

Hasil pencarian.

search_hits[].row

Row

Baris yang cocok.

search_hits[].highlight_result

HighlightResult

Hasil ringkasan dan penyorotan untuk baris tersebut. Nilainya kosong jika tidak ada penyorotan yang dikembalikan.

search_hits[].highlight_result.highlight_fields

list[HighlightField]

Penyorotan untuk bidang dalam baris tersebut.

highlight_fields[].field_name

str

Nama bidang yang disorot.

highlight_fields[].field_fragments

list[str]

Fragmen yang disorot. Token yang cocok ditandai dengan tag yang telah dikonfigurasi.

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 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()