Gunakan Tablestore SDK untuk Go guna mengembalikan fragmen teks dari bidang Text dan menandai kata kunci yang sesuai.
Prasyarat
Sebelum memulai, selesaikan persiapan berikut:
-
Instal Tablestore Go SDK dan inisialisasi klien.
-
Saat membuat search index, aktifkan EnableHighlighting untuk bidang Text. Untuk informasi selengkapnya, lihat Create a search index.
Deskripsi
Fitur ringkasan dan penyorotan mengekstraksi fragmen dari bidang Text yang sesuai dan menandai kata kunci yang cocok menggunakan tag yang telah dikonfigurasi. Tablestore SDK untuk Go mendukung penyorotan untuk kueri term, terms, prefix, wildcard, range, Boolean, constant score, match, match phrase, serta kueri bersarang (nested queries) melalui InnerHits.
Jika Anda menggunakan
MatchQueryatauMatchPhraseQuery, sebuah kata kunci yang sesuai mungkin diapit oleh beberapa pasang pre-tag dan post-tag.Jika tokenisasi semantik maksimum digunakan untuk bidang
Text,MatchPhraseQuerytidak mendukung ringkasan dan penyorotan.Batas fragmen mungkin memotong kata kunci yang sesuai. Dalam kasus tersebut, kata kunci tersebut tidak disorot.
highlight := search.NewHighlight().
AddFieldHighlightParameter(
"title",
search.NewHighlightParameter().
SetNumberOfFragments(3).
SetPreTag("").
SetPostTag(""),
)
searchQuery := search.NewSearchQuery().
SetQuery(&search.MatchQuery{FieldName: "title", Text: "go search"}).
SetHighlight(highlight)
response, err := client.Search(&tablestore.SearchRequest{
TableName: "example_table",
IndexName: "example_index",
SearchQuery: searchQuery,
})
if err != nil {
log.Fatal(err)
}
for _, hit := range response.SearchHits {
fmt.Println(hit.HighlightResultItem)
}
Parameter
Konfigurasi penyorotan
|
Nama |
Type |
Deskripsi |
|
FieldHighlightParameters (wajib) |
map[string]*search.HighlightParameter |
Pemetaan antara nama bidang dan parameter penyorotan. Sebuah bidang harus memiliki fitur ringkasan dan penyorotan yang diaktifkan serta digunakan dalam kondisi kueri yang didukung. Jika tidak, tidak ada fragmen yang disorot yang dikembalikan untuk bidang tersebut. |
|
HighlightEncoder (opsional) |
*search.HighlightEncoder |
Metode encoding untuk teks fragmen asli. Nilai yang valid:
|
Parameter penyorotan per bidang
|
Nama |
Tipe |
Deskripsi |
|
NumberOfFragments (opsional) |
*int32 |
Jumlah maksimum fragmen yang dikembalikan. Nilai yang direkomendasikan: 1. |
|
FragmentSize (opsional) |
*int32 |
Panjang target setiap fragmen. Nilai default: 100. Panjang aktual fragmen mungkin berbeda. |
|
PreTag (opsional) |
*string |
Tag yang disisipkan sebelum kata kunci yang sesuai. Nilai default: |
|
PostTag (opsional) |
*string |
Tag yang disisipkan setelah kata kunci yang sesuai. Nilai default: |
|
HighlightFragmentOrder (opsional) |
*search.HighlightFragmentOrder |
Urutan pengurutan fragmen. TextSequence mengurutkan fragmen berdasarkan posisinya dalam teks sumber dan merupakan nilai default. Score mengurutkan fragmen berdasarkan skor kecocokan. |
Respons
Setelah penyorotan dikonfigurasi, baca fragmen bidang dari SearchResponse.SearchHits[].HighlightResultItem.HighlightFields. Untuk kueri bersarang, baca hasil penyorotan dari hit di SearchInnerHits.