Todos los productos
Search
Centro de documentos

Tablestore:Consulta anidada

Última actualización: Sep 03, 2026

Utilice una consulta anidada en el Tablestore SDK for Go para hacer coincidir condiciones dentro de la misma fila secundaria de un campo Nested.

Requisitos previos

Instale Tablestore Go SDK e inicialice un cliente.

Descripción

Cada fila secundaria en un campo Nested se indexa como un documento anidado independiente. Una consulta anidada garantiza que las condiciones sobre varios campos secundarios coincidan dentro de la misma fila secundaria y evita coincidencias entre distintas filas secundarias.

func (client *tablestore.TableStoreClient) Search(request *tablestore.SearchRequest) (*tablestore.SearchResponse, error)

A continuación se muestra un ejemplo que consulta datos y devuelve hasta 10 filas, además del número total de filas coincidentes.

tableName := "example_table"
indexName := "example_index"

query := &search.NestedQuery{Path: "items", Query: &search.TermQuery{FieldName: "items.name", Term: "alice"}, ScoreMode: search.ScoreMode_Avg}
searchQuery := search.NewSearchQuery().
    SetQuery(query).
    SetLimit(10).
    SetGetTotalCount(true)

response, err := client.Search(&tablestore.SearchRequest{
    TableName:   tableName,
    IndexName:   indexName,
    SearchQuery: searchQuery,
    ColumnsToGet: &tablestore.ColumnsToGet{
        ReturnAllFromIndex: true,
    },
})
if err != nil {
    log.Fatal(err)
}

fmt.Println(response.TotalCount)
fmt.Println(response.Rows)

Parámetros

Solicitud de consulta

request es de tipo tablestore.SearchRequest y contiene los siguientes parámetros.

Nombre

Tipo

Descripción

TableName (obligatorio)

string

El nombre de la tabla de datos.

IndexName (obligatorio)

string

El nombre del índice de búsqueda.

SearchQuery (obligatorio)

search.SearchQuery

La condición de consulta y las configuraciones comunes de la consulta.

ColumnsToGet (opcional)

*tablestore.ColumnsToGet

La configuración de columnas a devolver. Si se omite este parámetro, solo se devuelven las columnas de clave principal.

RoutingValues (opcional)

[]*tablestore.PrimaryKey

Valores de clave principal para campos de enrutamiento personalizado. Omita este parámetro si no se ha configurado el enrutamiento personalizado.

TimeoutMs (opcional)

*int32

El periodo de tiempo de espera de la solicitud en milisegundos.

Configuración de la consulta

Cree una configuración de consulta mediante la llamada a search.NewSearchQuery() y configúrela con los siguientes métodos.

Nombre

Tipo

Descripción

SetQuery (obligatorio)

search.Query

Especifica la condición de consulta.

SetOffset (opcional)

int32

Especifica la posición inicial. Valor predeterminado: 0. Para la paginación basada en desplazamiento, la suma de Offset + Limit no puede exceder 100,000.

SetLimit (opcional)

int32

Especifica el número máximo de filas a devolver. Valor predeterminado: 10. Valor máximo: 100. Un valor de 0 no devuelve ninguna fila.

SetCollapse (opcional)

*search.Collapse

Colapsa los resultados de la consulta. Para obtener más información, consulte Collapse query results.

SetSort (opcional)

*search.Sort

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

SetGetTotalCount (opcional)

bool

Especifica si se deben contar todas las filas coincidentes. Valor predeterminado: false.

SetToken (opcional)

[]byte

Especifica el valor NextToken devuelto por la respuesta anterior. Este método borra Sort porque el token contiene las condiciones de clasificación de la página anterior. No especifique Offset cuando utilice la paginación basada en tokens.

SetSearchFilter (opcional)

*search.SearchFilter

Aplica un filtro posterior a la consulta. Para obtener más información, consulte Use post-query filters.

Aggregation (opcional)

...search.Aggregation

Configura agregaciones. Para obtener más información, consulte Aggregation.

GroupBy (opcional)

...search.GroupBy

Configura la agrupación. Para obtener más información, consulte Aggregation.

Condición de consulta

La consulta es de tipo search.NestedQuery y contiene los siguientes parámetros.

Nombre

Tipo

Descripción

Path (obligatorio)

string

La ruta del campo Nested.

Query (obligatorio)

search.Query

La consulta sobre campos secundarios. Utilice una ruta completa como items.name para un campo secundario.

ScoreMode (opcional)

search.ScoreMode

El método utilizado para combinar las puntuaciones de las filas secundarias coincidentes.

InnerHits (opcional)

*search.InnerHits

Devuelve las filas secundarias coincidentes y permite configurar la paginación, la clasificación y el resaltado para dichas filas.

Configuración de InnerHits

InnerHits contiene los siguientes parámetros.

Nombre

Tipo

Descripción

Offset (opcional)

*int32

La posición inicial de las filas secundarias coincidentes.

Limit (opcional)

*int32

El número de filas secundarias coincidentes a devolver. Valor predeterminado: 3.

Sort (opcional)

*search.Sort

El orden de clasificación de las filas secundarias coincidentes.

Highlight (opcional)

*search.Highlight

La configuración de resumen y resaltado para los campos secundarios Nested. Para obtener más información, consulte Summary and highlighting.

Columnas a devolver

request.ColumnsToGet es de tipo tablestore.ColumnsToGet y contiene los siguientes parámetros.

Nombre

Tipo

Descripción

Columns (opcional)

[]string

Las columnas de atributos a devolver. Este parámetro solo surte efecto cuando tanto ReturnAll como ReturnAllFromIndex son false.

ReturnAll (opcional)

bool

Especifica si se deben devolver todas las columnas de atributos de la tabla de datos. Valor predeterminado: false.

ReturnAllFromIndex (opcional)

bool

Especifica si se deben devolver todas las columnas de atributos indexadas. Valor predeterminado: false. No establezca este parámetro y ReturnAll en true al mismo tiempo.

Respuesta

El método Search devuelve un valor tablestore.SearchResponse. La siguiente tabla describe los campos principales del negocio.

Nombre

Tipo

Descripción

TotalCount

int64

El número total de filas coincidentes. El valor depende de SetGetTotalCount.

Rows

[]*tablestore.Row

Las filas devueltas por la consulta actual. El número no excede el valor especificado por SetLimit.

SearchHits

[]*tablestore.SearchHit

Los aciertos de búsqueda. Lea este campo cuando utilice resaltado, aciertos internos anidados o puntuaciones de relevancia.

NextToken

[]byte

El token para la siguiente página. Si el valor no está vacío, páselo a la siguiente consulta.

IsAllSuccess

bool

Indica si se consultaron todas las particiones del índice. Si el valor es false, se devuelven resultados parciales y TotalCount puede ser menor que el número real de filas coincidentes.

AggregationResults

search.AggregationResults

Los resultados de la agregación.

GroupByResults

search.GroupByResults

Los resultados de la agrupación.