All Products
Search
Document Center

Tablestore:Ringkasan dan penyorotan

Last Updated:Jul 28, 2026

Gunakan fitur ringkasan dan penyorotan pada Tablestore SDK for Java untuk mengembalikan fragmen dari bidang Text yang berisi kata kunci yang sesuai, serta menandai kata kunci tersebut dengan tag yang telah dikonfigurasi.

Prasyarat

Instal Tablestore SDK for Java dan inisialisasi klien.

Deskripsi fitur

Fitur ringkasan dan penyorotan mengekstraksi fragmen teks di sekitar kata kunci yang sesuai dengan kueri, lalu membungkus kata kunci tersebut dengan pre-tag dan post-tag. Fragmen ini dapat digunakan untuk menampilkan konteks hasil pencocokan kueri. Fitur ini hanya mendukung bidang Text.

Sebelum menggunakan ringkasan dan penyorotan, atur enableHighlighting ke true untuk bidang tersebut saat Anda membuat indeks pencarian. Dalam kueri, gunakan SearchQuery.highlight untuk menentukan bidang yang fragmennya ingin Anda kembalikan beserta pengaturan fragmen tersebut. Bidang tersebut harus digunakan dalam kondisi kueri yang mendukung ringkasan dan penyorotan; jika tidak, tidak ada fragmen yang disorot akan dikembalikan untuk bidang tersebut.

Jenis kueri berikut dapat mengembalikan hasil ringkasan dan penyorotan: TermQuery, TermsQuery, MatchQuery, MatchPhraseQuery, PrefixQuery, WildcardQuery, RangeQuery, BoolQuery, ConstScoreQuery, dan NestedQuery.

Untuk BoolQuery atau ConstScoreQuery, Anda dapat mengonfigurasi ringkasan dan penyorotan untuk bidang yang digunakan oleh kueri anak dari tujuh jenis kueri sebelumnya. Untuk NestedQuery, konfigurasikan InnerHits.highlight untuk mengembalikan hasil ringkasan dan penyorotan bagi baris anak yang sesuai. Untuk informasi selengkapnya, lihat Nested query.

Catatan
  • Jika Anda menggunakan MatchQuery atau MatchPhraseQuery, satu kata kunci yang sesuai mungkin dibungkus oleh beberapa pasang pre-tag dan post-tag.

  • Jika tokenisasi semantik maksimum digunakan untuk bidang Text, MatchPhraseQuery tidak mendukung ringkasan dan penyorotan.

  • Batas fragmen mungkin memotong kata kunci yang sesuai. Dalam kasus ini, kata kunci tersebut tidak akan disorot.

Contoh berikut menggunakan kueri cocok untuk mengambil baris di mana bidang description berisi kata kunci tablestore. Contoh ini membungkus kata kunci yang sesuai dalam fragmen yang dikembalikan dengan <b> dan </b>. Bidang description merupakan bidang Text yang telah diaktifkan fitur ringkasan dan penyorotannya.

String tableName = "example_table";
String indexName = "example_index";

MatchQuery matchQuery = new MatchQuery();
matchQuery.setFieldName("description");
matchQuery.setText("tablestore");

HighlightParameter highlightParameter = new HighlightParameter();
highlightParameter.setPreTag("");
highlightParameter.setPostTag("");

Highlight highlight = new Highlight();
highlight.addFieldHighlightParam("description", highlightParameter);

SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(matchQuery);
searchQuery.setHighlight(highlight);
searchQuery.setLimit(10);

SearchRequest request = new SearchRequest(tableName, indexName, searchQuery);
SearchResponse response = client.search(request);
for (SearchHit hit : response.getSearchHits()) {
    HighlightResultItem resultItem = hit.getHighlightResultItem();
    if (resultItem == null) {
        continue;
    }
    HighlightField field = resultItem.getHighlightFieldByName("description");
    if (field != null) {
        System.out.println(field.getFragments());
    }
}

Parameter

request.searchQuery.highlight bertipe Highlight. Nilai dalam fieldHighlightParams adalah objek HighlightParameter yang mengonfigurasi perilaku fragmen untuk masing-masing bidang.

Tabel berikut menggunakan jalur parameter lengkap untuk menjelaskan dua tingkat konfigurasi: Highlight dan HighlightParameter.

Nama

Tipe

Deskripsi

fieldHighlightParams (wajib)

Map<String, HighlightParameter>

Nama bidang dan pengaturan fragmen. Kunci adalah nama bidang yang hasil ringkasan dan penyorotannya ingin Anda kembalikan. Nilainya adalah objek HighlightParameter untuk bidang tersebut. Bidang tersebut harus memiliki fitur ringkasan dan penyorotan yang diaktifkan serta digunakan dalam kondisi kueri yang didukung.

highlightEncoder (opsional)

HighlightEncoder

Metode encoding untuk teks asli dalam fragmen yang disorot. Nilai yang valid:

  • PLAIN (default): Tidak melakukan encode pada teks asli.

  • HTML: Melakukan HTML-escape pada teks asli. Gunakan nilai ini jika Anda menampilkan hasil di halaman web. Karakter <, >, ", ', dan / di-escape menjadi &lt;, &gt;, &quot;, &#x27;, dan &#x2F;, secara berurutan.

fieldHighlightParams[].numberOfFragments (opsional)

Integer

Jumlah maksimum fragmen yang disorot yang akan dikembalikan untuk suatu bidang. Kami menyarankan Anda mengatur parameter ini ke 1.

fieldHighlightParams[].fragmentSize (opsional)

Integer

Panjang target setiap fragmen. Nilai default-nya adalah 100. Panjang fragmen aktual mungkin berbeda dari nilai ini.

fieldHighlightParams[].preTag (opsional)

String

Pre-tag untuk kata kunci yang sesuai. Nilai default-nya adalah <em>. Anda dapat menentukan tag kustom seperti <b>. Anda harus mengonfigurasi preTag dan postTag secara bersamaan. Karakter yang didukung adalah < > " ' /, a-z, A-Z, dan 0-9.

fieldHighlightParams[].postTag (opsional)

String

Post-tag untuk kata kunci yang sesuai. Nilai default-nya adalah </em>. Anda dapat menentukan tag kustom seperti </b>. Anda harus mengonfigurasi preTag dan postTag secara bersamaan. Karakter yang didukung sama dengan yang digunakan untuk preTag.

fieldHighlightParams[].highlightFragmentOrder (opsional)

HighlightFragmentOrder

Urutan pengembalian beberapa fragmen yang disorot. TEXT_SEQUENCE (default) mengurutkan fragmen berdasarkan posisinya dalam teks asli. SCORE mengurutkan fragmen berdasarkan skor relevansi kata kunci yang sesuai.

Respons

Respons kueri

Metode search mengembalikan objek SearchResponse. Bidang berikut relevan dengan fitur ringkasan dan penyorotan.

Nama

Tipe

Deskripsi

searchHits

List<SearchHit>

Hasil pencocokan kueri, yang dapat diperoleh dengan memanggil getSearchHits(). Setiap elemen berisi data baris dan hasil ringkasan serta penyorotan.

isAllSuccess

boolean

Menunjukkan apakah semua partisi indeks telah diinterogasi. Anda dapat memperoleh nilainya dengan memanggil isAllSuccess(). Jika nilainya false, hanya hasil parsial yang dikembalikan.

Hasil pencocokan kueri

response.searchHits[] bertipe SearchHit. Bidang berikut relevan dengan fitur ringkasan dan penyorotan.

Nama

Tipe

Deskripsi

row

Row

Data baris. Anda dapat memperoleh nilainya dengan memanggil getRow().

highlightResultItem

HighlightResultItem

Hasil ringkasan dan penyorotan semua bidang dalam baris tersebut. Anda dapat memperoleh nilainya dengan memanggil getHighlightResultItem(). Nilainya adalah null jika baris tersebut tidak memiliki hasil penyorotan.

Hasil penyorotan

response.searchHits[].highlightResultItem bertipe HighlightResultItem dan berisi bidang berikut.

Nama

Tipe

Deskripsi

highlightFields

Map<String, HighlightField>

Hasil penyorotan untuk bidang-bidang dalam baris tersebut. Anda dapat memperoleh map ini dengan memanggil getHighlightFields(). Anda juga dapat memanggil getHighlightFieldByName(fieldName) untuk memperoleh hasil spesifik suatu bidang. Metode ini mengembalikan null jika bidang tersebut tidak memiliki hasil penyorotan.

Fragmen bidang

response.searchHits[].highlightResultItem.highlightFields[fieldName] bertipe HighlightField dan berisi bidang berikut.

Nama

Tipe

Deskripsi

fragments

List<String>

Fragmen yang disorot untuk bidang tersebut. Anda dapat memperoleh daftar ini dengan memanggil getFragments(). Kata kunci yang sesuai dalam fragmen tersebut dibungkus oleh pre-tag dan post-tag yang telah dikonfigurasi.