Use una consulta de términos en el Tablestore SDK for Go para coincidir con cualquiera de varios valores de consulta exactos.
Requisitos previos
Instale Tablestore Go SDK e inicialice un cliente.
Descripción
Una consulta de términos especifica varios valores para el mismo campo. Una fila coincide si el valor del campo o un token coincide exactamente con cualquier valor de la consulta. Los valores se unen mediante el operador OR y no se tokenizan.
func (client *tablestore.TableStoreClient) Search(request *tablestore.SearchRequest) (*tablestore.SearchResponse, error)
El siguiente ejemplo consulta datos y devuelve hasta 10 filas, además del número total de filas coincidentes.
tableName := "example_table"
indexName := "example_index"
query := &search.TermsQuery{FieldName: "category", Terms: []interface{}{ "books", "music" }}
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 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 ha configurado el enrutamiento personalizado. |
|
TimeoutMs (opcional) |
*int32 |
El periodo de tiempo de espera de la solicitud en milisegundos. |
Configuración de consulta
Cree una configuración de consulta al llamar a search.NewSearchQuery() y configúrela mediante 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. Para la paginación basada en desplazamiento, Offset + Limit no puede exceder 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 Text. Para más información, consulte Summary and highlighting. |
|
SetCollapse (opcional) |
*search.Collapse |
Colapsa 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 |
Especifique si se deben contar todas las filas coincidentes. Valor predeterminado: false. |
|
SetToken (opcional) |
[]byte |
Especifique el valor NextToken que devuelve 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 use 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.TermsQuery y contiene los siguientes parámetros.
|
Nombre |
Tipo |
Descripción |
|
FieldName (obligatorio) |
string |
El nombre del campo de índice por consultar. |
|
Terms (obligatorio) |
[]interface{} |
Los valores de consulta, que se unen mediante el operador OR. |
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 por devolver. Este parámetro solo surte efecto cuando ReturnAll y ReturnAllFromIndex son ambos false. |
|
ReturnAll (opcional) |
bool |
Especifique si se deben devolver todas las columnas de atributos de la tabla de datos. Valor predeterminado: false. |
|
ReturnAllFromIndex (opcional) |
bool |
Especifique 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.
|
Nombre |
Tipo |
Descripción |
|
TotalCount |
int64 |
El número total de filas coincidentes. El valor depende de SetGetTotalCount. |
|
Rows |
[]*tablestore.Row |
Las filas que devuelve 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 use 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. |