すべてのプロダクト
Search
ドキュメントセンター

Tablestore:概要とハイライト

最終更新日:Aug 12, 2026

Tablestore Go SDK を使用して、Text 型のフィールドからテキストのフラグメントを返し、一致したタームをハイライトします。

前提条件

開始する前に、次の準備を完了してください。

  • Tablestore Go SDK をインストールし、クライアントを初期化します。

  • 検索インデックスを作成する際に、Text 型のフィールドに対して EnableHighlighting を有効にします。 詳細については、「検索インデックスの作成」をご参照ください。

説明

概要とハイライトは、一致した Text 型のフィールドからフラグメントを抽出し、設定したタグで一致したタームをハイライトします。 Tablestore Go SDK は、ターム、ターム (複数)、プレフィックス、ワイルドカード、レンジ、ブール、コンスタントスコア、マッチ、Match Phrase、および Nested クエリ (InnerHits を使用) のハイライトをサポートしています。

重要
  • MatchQuery または MatchPhraseQuery を使用する場合、一致したタームが複数の pre-tags と post-tags のペアで囲まれることがあります。

  • Text 型のフィールドで最大セマンティック形態素解析が使用されている場合、MatchPhraseQuery は概要とハイライトをサポートしません。

  • フラグメントの境界によって、一致したタームが分割される場合があります。 この場合、そのタームはハイライトされません。

highlight := search.NewHighlight().
    AddFieldHighlightParameter(
        "title",
        search.NewHighlightParameter().
            SetNumberOfFragments(3).
            SetPreTag("<em>").
            SetPostTag("</em>"),
    )

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

パラメーター

ハイライト設定

名前

型

説明

FieldHighlightParameters (必須)

map[string]*search.HighlightParameter

フィールド名とハイライトパラメーター間のマッピング。 フィールドの概要とハイライトが有効であり、かつサポートされているクエリ条件で使用されている必要があります。 それ以外の場合、そのフィールドに対してハイライトされたフラグメントは返されません。

HighlightEncoder (任意)

*search.HighlightEncoder

元のフラグメントテキストのエンコード方式。 有効値:

  • PlainMode:元のテキストを返します。 これがデフォルト値です。

  • HtmlMode:HTML の特殊文字をエスケープし、Web ページでの直接レンダリングに適しています。 以下の文字がエスケープされます。

    • < は &lt;

    • > は &gt;

    • " は &quot;

    • ' は &#x27;

    • / は &#x2F;

フィールドハイライトパラメーター

名前

型

説明

NumberOfFragments (任意)

*int32

返されるフラグメントの最大数。 推奨値:1。

FragmentSize (任意)

*int32

各フラグメントのターゲット長。 デフォルト値:100。 実際のフラグメント長は異なる場合があります。

PreTag (任意)

*string

一致したタームの前に挿入されるタグ。 デフォルト値:<em>。 タグは < > " ' /、英字、数字をサポートしています。

PostTag (任意)

*string

一致したタームの後に挿入されるタグ。 デフォルト値:</em>。 タグは < > " ' /、英字、数字をサポートしています。

HighlightFragmentOrder (任意)

*search.HighlightFragmentOrder

フラグメントのソート順序。 TextSequence は、ソーステキスト内の位置によってフラグメントをソートします (デフォルト)。 Score は、マッチスコアによってフラグメントをソートします。

レスポンス

ハイライトを設定した後、SearchResponse.SearchHits[].HighlightResultItem.HighlightFields からフィールドのフラグメントを読み取ります。 Nested クエリの場合、ハイライト結果は SearchInnerHits のヒットから読み取ります。