Todos los productos
Search
Centro de documentos

Tablestore:Collapse query results

Última actualización: Sep 03, 2026

Utilice Tablestore SDK for Python para colapsar los resultados del índice de búsqueda según un campo específico y devolver una fila por cada valor distinto del campo.

Requisitos previos

Instale Tablestore SDK for Python e inicialice un cliente.

Descripción

La función Collapse agrupa las filas coincidentes según un campo específico del índice de búsqueda y devuelve una fila representativa por cada valor distinto del campo. El orden de clasificación de la consulta determina qué fila se devuelve de cada grupo. Para obtener más información, consulte Sort and paginate results. La función Collapse solo modifica los resultados de la consulta y no altera la tabla.

Importante

El campo de colapso debe tener habilitadas la clasificación y la agregación, y debe ser un campo que no sea de tipo matriz: Keyword, Long o Double. Las consultas con colapso solo admiten paginación mediante limit y offset, pero no con next_token. La suma de limit + offset no puede superar 100000. Las agregaciones, las agrupaciones y el recuento total de filas coincidentes se calculan sobre los resultados antes del colapso. La respuesta no proporciona el número total de grupos colapsados.

En el siguiente ejemplo se colapsan los resultados por category y se ordenan por price en orden descendente. Por lo tanto, se devuelve la fila con el precio más alto para cada categoría.

query = MatchAllQuery()
search_query = SearchQuery(
    query,
    sort=Sort([FieldSort("price", SortOrder.DESC)]),
    collapse_field=Collapse("category"),
    limit=10,
    get_total_count=True,
)
response = client.search(
    "example_table",
    "example_index",
    search_query,
    ColumnsToGet(
        ["category", "price"],
        ColumnReturnType.SPECIFIED,
    ),
)
print(response.total_count)
print(response.rows)

Parámetros

Solicitud de búsqueda

El método search incluye los siguientes parámetros.

Nombre

Tipo

Descripción

table_name (obligatorio)

str

Nombre de la tabla de datos.

index_name (obligatorio)

str

Nombre del índice de búsqueda.

search_query (obligatorio)

SearchQuery

Condición de consulta y configuraciones generales de la consulta.

columns_to_get (opcional)

ColumnsToGet

Configuración de columnas a devolver. Si no se especifica este parámetro, solo se devuelven las columnas de clave primaria.

routing_keys (opcional)

list

Valores de clave primaria de los campos de enrutamiento personalizados. Este parámetro no es necesario si no se ha configurado un enrutamiento personalizado.

timeout_s (opcional)

int

Tiempo de espera de la solicitud en segundos. Si no se especifica este parámetro, se utiliza el tiempo de espera definido a nivel de cliente.

Configuración de la consulta

search_query es de tipo SearchQuery e incluye los siguientes parámetros.

Nombre

Tipo

Descripción

query (obligatorio)

Query

Condición de consulta. Especifique un tipo de Query según sus requisitos de coincidencia.

sort (opcional)

Sort

Orden de clasificación de los resultados. Para obtener más información, consulte Sort and paginate results.

get_total_count (opcional)

bool

Indica si se debe devolver el número total de filas coincidentes. Valor predeterminado: False. Establecer este parámetro en True incrementa la sobrecarga de la consulta.

next_token (opcional)

bytes

No especifique este parámetro para una consulta con colapso.

offset (opcional)

int

Posición inicial del grupo. Valor predeterminado: 0. La suma de este parámetro y limit no puede superar 100000.

limit (opcional)

int

Número máximo de filas a devolver. Si este parámetro se establece en 0, no se devuelve ninguna fila.

aggs (opcional)

list[Agg]

Configuraciones de agregación de métricas. Para obtener más información, consulte Aggregation.

group_bys (opcional)

list[BaseGroupBy]

Configuraciones de agrupación. Para obtener más información, consulte Aggregation.

collapse_field (obligatorio)

Collapse

Configuración del colapso de resultados.

highlight (opcional)

Highlight

Configuración de resumen y resaltado para campos Text. Para obtener más información, consulte Summary and highlighting.

Configuración de colapso

search_query.collapse_field es de tipo Collapse e incluye el siguiente parámetro.

Nombre

Tipo

Descripción

field_name (obligatorio)

str

Nombre del campo de colapso. Debe ser un campo que no sea de tipo matriz, como Keyword, Long o Double, y debe tener habilitadas la clasificación y la agregación.

Columnas de retorno

columns_to_get es de tipo ColumnsToGet e incluye los siguientes parámetros.

Nombre

Tipo

Descripción

column_names (opcional)

list[str]

Nombres de las columnas de atributos a devolver. Especifique este parámetro únicamente cuando return_type sea SPECIFIED.

return_type (opcional)

ColumnReturnType

Modo de retorno de columnas. NONE (predeterminado) devuelve solo las columnas de clave primaria; SPECIFIED devuelve las columnas de atributos especificadas; ALL devuelve todas las columnas de atributos de la tabla; y ALL_FROM_INDEX devuelve todos los campos almacenados en el índice.

Respuesta

El método search devuelve un objeto SearchResponse. En la siguiente tabla se describen los campos principales.

Campo

Tipo

Descripción

rows

list[Row]

Filas resultantes después del colapso. Se devuelve como máximo una fila por cada valor distinto del campo de colapso.

next_token

bytes

Token para la siguiente página. Un valor vacío indica que no hay más datos disponibles.

total_count

int

Número de filas coincidentes antes del colapso. El valor depende de get_total_count y no corresponde al número de grupos colapsados.

is_all_succeed

bool

Indica si se consultaron todas las particiones del índice. Si el valor es False, se devuelven resultados parciales.

agg_results

list[AggResult]

Resultados de la agregación de métricas. Este campo está vacío si no se configura aggs.

group_by_results

list[GroupByResult]

Resultados de la agrupación. Este campo está vacío si no se configura group_bys.

search_hits

list[SearchHit]

Coincidencias de búsqueda, que incluyen información extendida como filas, puntuaciones de relevancia y resaltados.

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 la respuesta.

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