Todos los productos
Search
Centro de documentos

Tablestore:Consultas JSON

Última actualización: Sep 03, 2026

Use el Tablestore SDK for Go para consultar campos JSON Object o JSON Nested en un índice de búsqueda.

Requisitos previos

Antes de empezar, complete las siguientes preparaciones:

Descripción

Un campo JSON admite indexación de tipo Object y Nested. El tipo Object no conserva los límites de los objetos dentro de un arreglo, por lo que distintos objetos pueden satisfacer diferentes condiciones de consulta. El tipo Nested indexa cada objeto de un arreglo como una fila secundaria independiente y garantiza que varias condiciones coincidan dentro del mismo elemento del arreglo.

Tipo de índice JSON

Método de consulta

JsonType_OBJECT

No conserva los límites de los objetos en un arreglo. Use la ruta completa del campo secundario en una consulta estándar, como profile.city.

JsonType_NESTED

Conserva las relaciones entre campos dentro del mismo objeto. Use NestedQuery para consultar objetos en un arreglo.

Nota

Los SubFieldSchemas de un campo JSON no pueden contener un campo secundario de tipo Vector.

Consultar un campo Object

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

query := &search.TermQuery{FieldName: "profile.city", Term: "hangzhou"}
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)

Consultar un campo Nested

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

query := &search.NestedQuery{Path: "orders", Query: &search.TermQuery{FieldName: "orders.product", Term: "book"}, ScoreMode: search.ScoreMode_None}
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

Un campo Object usa los parámetros del tipo de consulta seleccionado. Un campo Nested usa search.NestedQuery. Para las configuraciones de consulta comunes, consulte Term query. Para los parámetros de NestedQuery, consulte Nested query.

Consulta de campo Object

Nombre

Tipo

Descripción

FieldName (obligatorio)

string

La ruta completa del campo secundario JSON, como profile.city.

Valor de consulta (obligatorio)

interface{}

El nombre y el tipo dependen del tipo de consulta seleccionado.

Consulta de campo Nested

Nombre

Tipo

Descripción

Path (obligatorio)

string

La ruta del campo JsonType_NESTED.

Query (obligatorio)

search.Query

La condición de consulta sobre los campos secundarios.

ScoreMode (opcional)

search.ScoreMode

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