Todos los productos
Search
Centro de documentos

Tablestore:Summary and highlighting

Última actualización: Sep 03, 2026

Utilice Tablestore SDK for Python para obtener fragmentos de campos Text que contengan tokens coincidentes y marcar dichos tokens.

Requisitos previos

Instale Tablestore SDK for Python e inicialice un cliente.

La función de resumen y resaltado requiere la versión 6.0.0 del SDK o posterior. Se recomienda utilizar la versión más reciente del SDK.

Al crear search index, establezca enable_highlighting en True para el campo Text de destino.

Descripción

El resumen y resaltado extrae fragmentos de texto alrededor de los tokens coincidentes y marca estos tokens con etiquetas de apertura y cierre. Esta función solo es compatible con campos Text. En una consulta, utilice SearchQuery.highlight para especificar los campos y las configuraciones de fragmentos.

Tablestore SDK for Python 6.4.6 admite el resumen y resaltado para TermQuery, TermsQuery, PrefixQuery, WildcardQuery, RangeQuery, BoolQuery, MatchQuery y MatchPhraseQuery. Para BoolQuery, puede resaltar los campos utilizados por los tipos de consultas secundarias compatibles. Para NestedQuery, configure el resaltado de filas secundarias coincidentes en InnerHits.highlight. Para obtener más información, consulte Nested query.

Nota

Con MatchQuery o MatchPhraseQuery, un token coincidente podría marcarse con varios pares de etiquetas de apertura y cierre. MatchPhraseQuery no admite el resaltado en un campo Text que utiliza el analizador semántico máximo. Un límite de fragmento podría dividir un token coincidente e impedir que se resalte.

En el siguiente ejemplo se busca el token tablestore en el campo description y se marcan los tokens coincidentes en los fragmentos con <b> y </b>.

query = MatchQuery("description", "tablestore")
highlight = Highlight(
    [
        HighlightParameter(
            "description",
            number_of_fragments=1,
            fragment_size=100,
            pre_tag="<b>",
            post_tag="</b>",
        )
    ],
    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)

Parámetros

search_query.highlight es de tipo Highlight. La siguiente tabla utiliza rutas completas para describir los dos niveles de configuración de Highlight y HighlightParameter.

Nombre

Tipo

Descripción

highlight_parameters (obligatorio)

list[HighlightParameter]

Configuraciones de fragmentos resaltados para los campos. Cada campo debe tener el resaltado habilitado y participar en un tipo de consulta que admita esta función.

highlight_encoder (opcional)

HighlightEncoder

Modo de codificación del texto de los fragmentos. PLAIN_MODE (predeterminado) no codifica el texto. HTML_MODE escapa los caracteres <, >, ", ' y / como &lt;, &gt;, &quot;, &#x27; y &#x2F;, respectivamente, y es adecuado para su visualización web.

highlight_parameters[].field_name (obligatorio)

str

Nombre del campo Text del cual se devolverán fragmentos y resaltados.

highlight_parameters[].number_of_fragments (opcional)

int

Número máximo de fragmentos que se devolverán para un campo. Se recomienda 1.

highlight_parameters[].fragment_size (opcional)

int

Longitud objetivo del fragmento. Valor predeterminado: 100. La longitud real puede variar.

highlight_parameters[].pre_tag (opcional)

str

Etiqueta de apertura para los tokens coincidentes. Valor predeterminado: <em>. Especifique este parámetro junto con post_tag. La etiqueta puede contener <, >, ", ', /, a-z, A-Z y 0-9.

highlight_parameters[].post_tag (opcional)

str

Etiqueta de cierre para los tokens coincidentes. Valor predeterminado: </em>. Especifique este parámetro junto con pre_tag. La etiqueta puede contener <, >, ", ', /, a-z, A-Z y 0-9.

highlight_parameters[].fragments_order (opcional)

HighlightFragmentOrder

Orden de clasificación de los fragmentos. TEXT_SEQUENCE (predeterminado) ordena según la posición original en el texto, mientras que SCORE ordena según la puntuación de relevancia del token.

Respuesta

Los resultados de resaltado están disponibles en SearchResponse.search_hits[].highlight_result y tienen la siguiente estructura.

Campo

Tipo

Descripción

search_hits

list[SearchHit]

Resultados de la búsqueda.

search_hits[].row

Row

Fila coincidente.

search_hits[].highlight_result

HighlightResult

Resultado de resumen y resaltado para la fila. El valor está vacío si no se devuelve ningún resaltado.

search_hits[].highlight_result.highlight_fields

list[HighlightField]

Resaltados correspondientes a los campos de la fila.

highlight_fields[].field_name

str

Nombre del campo resaltado.

highlight_fields[].field_fragments

list[str]

Fragmentos resaltados. Los tokens coincidentes se marcan con las etiquetas configuradas.

Respuesta compatible con tuplas

A partir de Tablestore SDK for Python 5.2.0, las API de búsqueda devuelven objetos de respuesta en lugar de tuplas. La versión 5.1.0 y anteriores devuelven tuplas directamente. En la versión 5.2.1 y posteriores, puede llamar a SearchResponse.v1_response() para obtener una tupla compatible con versiones anteriores. Para código nuevo, acceda directamente a los atributos de SearchResponse y evite errores de desempaquetado si se amplían los campos de respuesta.

(
    rows,
    next_token,
    total_count,
    is_all_succeed,
    agg_results,
    group_by_results,
    search_hits,
) = response.v1_response()