Utilice una consulta de rango de índice de búsqueda en el Tablestore SDK for Go para obtener valores dentro de un intervalo específico.
Requisitos previos
Instale Tablestore Go SDK e inicialice un cliente.
Descripción
Una consulta de rango de índice de búsqueda obtiene los valores de campo que se encuentran dentro de un intervalo definido. Es posible especificar si se incluyen los límites inferior y superior. La comparación de valores se realiza según el tipo de campo del índice.
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.RangeQuery{FieldName: "price", From: int64(100), To: int64(500), IncludeLower: true, IncludeUpper: false}
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 |
Nombre de la tabla de datos. |
|
IndexName (obligatorio) |
string |
Nombre del índice de búsqueda. |
|
SearchQuery (obligatorio) |
search.SearchQuery |
Condición de consulta y configuraciones generales de la consulta. |
|
ColumnsToGet (opcional) |
*tablestore.ColumnsToGet |
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 |
Tiempo de espera de la solicitud en milisegundos. |
Configuración de la consulta
Cree una configuración de consulta mediante search.NewSearchQuery() y configúrela con los siguientes métodos.
|
Nombre |
Tipo |
Descripción |
|
SetQuery (obligatorio) |
search.Query |
Especifique la condición de consulta. |
|
SetOffset (opcional) |
int32 |
Especifique la posición inicial. Valor predeterminado: 0. En la paginación basada en desplazamiento, la suma de Offset + Limit no puede superar 100,000. |
|
SetLimit (opcional) |
int32 |
Especifique el número máximo de filas a devolver. Valor predeterminado: 10. Valor máximo: 100. Un valor de 0 no devuelve ninguna fila. |
|
SetHighlight (opcional) |
*search.Highlight |
Configure resúmenes y resaltado para campos de texto. Para más información, consulte Summary and highlighting. |
|
SetCollapse (opcional) |
*search.Collapse |
Agrupa los resultados de la consulta. Para más información, consulte Collapse query results. |
|
SetSort (opcional) |
*search.Sort |
Especifique el orden de clasificación de los resultados. Para más información, consulte Sort and paginate results. |
|
SetGetTotalCount (opcional) |
bool |
Indica si se debe contar el total de filas coincidentes. Valor predeterminado: false. |
|
SetToken (opcional) |
[]byte |
Especifique 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 paginación basada en tokens. |
|
SetSearchFilter (opcional) |
*search.SearchFilter |
Aplica un filtro posterior a la consulta. Para más información, consulte Use post-query filters. |
|
Aggregation (opcional) |
...search.Aggregation |
Configure agregaciones. Para más información, consulte Aggregation. |
|
GroupBy (opcional) |
...search.GroupBy |
Configure agrupaciones. Para más información, consulte Aggregation. |
Condición de consulta
La consulta es de tipo search.RangeQuery y contiene los siguientes parámetros.
|
Nombre |
Tipo |
Descripción |
|
FieldName (obligatorio) |
string |
Nombre del campo de índice que se va a consultar. |
|
From (opcional) |
interface{} |
Límite inferior. Especifique como mínimo uno de los parámetros From o To. Llame a |
|
To (opcional) |
interface{} |
Límite superior. Especifique como mínimo uno de los parámetros From o To. Llame a |
|
IncludeLower (opcional) |
bool |
Indica si se incluye el límite inferior. Valor predeterminado: false. |
|
IncludeUpper (opcional) |
bool |
Indica si se incluye el límite superior. Valor predeterminado: false. |
Columnas a devolver
request.ColumnsToGet es de tipo tablestore.ColumnsToGet y contiene los siguientes parámetros.
|
Nombre |
Tipo |
Descripción |
|
Columns (opcional) |
[]string |
Columnas de atributos que se deben devolver. Este parámetro solo surte efecto cuando ReturnAll y ReturnAllFromIndex son false. |
|
ReturnAll (opcional) |
bool |
Indica si se deben devolver todas las columnas de atributos de la tabla de datos. Valor predeterminado: false. |
|
ReturnAllFromIndex (opcional) |
bool |
Indica si se deben devolver todas las columnas de atributos indexadas. Valor predeterminado: false. No configure este parámetro y ReturnAll como true al mismo tiempo. |
Respuesta
El método Search devuelve un valor tablestore.SearchResponse. La siguiente tabla describe los campos principales de negocio.
|
Nombre |
Tipo |
Descripción |
|
TotalCount |
int64 |
Número total de filas coincidentes. El valor depende de SetGetTotalCount. |
|
Rows |
[]*tablestore.Row |
Filas devueltas por la consulta actual. La cantidad no supera el valor especificado en SetLimit. |
|
SearchHits |
[]*tablestore.SearchHit |
Resultados de la búsqueda. Lea este campo cuando utilice resaltado, resultados internos anidados o puntuaciones de relevancia. |
|
NextToken |
[]byte |
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 podría ser menor que el número real de filas coincidentes. |
|
AggregationResults |
search.AggregationResults |
Resultados de la agregación. |
|
GroupByResults |
search.GroupByResults |
Resultados de la agrupación. |