Tous les produits
Search
Centre de documentation

Tablestore:Utiliser des filtres

Dernière mise à jour :Aug 18, 2026

Lors de la lecture de données du modèle Wide Column, utilisez le SDK Tablestore pour Go afin de filtrer les lignes ou de paginer les colonnes d'attributs renvoyées côté serveur.

Prérequis

Installez le SDK Tablestore pour Go et initialisez le client.

Description

Un filtre permet de trier les résultats de lecture côté serveur sans réduire le nombre d'unités de capacité de lecture (CU) consommées. Spécifiez un filtre dans les critères de requête des opérations GetRow, GetRange ou BatchGetRow. Le SDK Tablestore pour Go prend en charge les types de filtres suivants :

  • Filtre de valeur sur colonne unique (SingleColumnCondition) : évalue la valeur d'une colonne d'attribut.

  • Filtre d'expression régulière sur valeur de colonne unique (SingleColumnValueRegexFilter) : extrait une sous-chaîne d'une colonne d'attribut de type STRING, convertit cette sous-chaîne, puis compare le résultat.

  • Filtre composite (CompositeColumnCondition) : combine des filtres à l'aide des opérateurs AND, OR ou NOT. Un filtre composite peut contenir jusqu'à 32 conditions.

  • Filtre de pagination de colonnes (PaginationFilter) : renvoie des colonnes d'attributs en fonction d'un décalage et d'un compte, sans évaluer les valeurs des colonnes.

L'exemple suivant utilise un filtre de valeur sur colonne unique pour renvoyer uniquement les lignes où score >= 60.

filter := tablestore.NewSingleColumnCondition(
    "score",
    tablestore.CT_GREATER_EQUAL,
    int64(60),
)

request.RangeRowQueryCriteria.Filter = filter
response, err := client.GetRange(request)
if err != nil {
    log.Fatal(err)
}
fmt.Println(response.Rows)

Paramètres

Filtre de valeur sur colonne unique

Appelez NewSingleColumnCondition(columnName, comparator, value) pour créer un filtre de valeur sur colonne unique. L'objet SingleColumnCondition contient les paramètres suivants.

Nom

Type

Description

ColumnName (obligatoire)

*string

La colonne d'attribut à évaluer.

Comparator (obligatoire)

*ComparatorType

L'opérateur de comparaison. Valeurs valides : CT_EQUAL, CT_NOT_EQUAL, CT_GREATER_THAN, CT_GREATER_EQUAL, CT_LESS_THAN et CT_LESS_EQUAL.

ColumnValue (obligatoire)

interface{}

La valeur à comparer.

FilterIfMissing (facultatif)

bool

Indique si la ligne doit être filtrée lorsque la colonne est absente. Valeur par défaut : false, ce qui renvoie la ligne.

LatestVersionOnly (facultatif)

bool

Indique si seule la dernière version doit être évaluée. Valeur par défaut : false, ce qui renvoie la ligne si n'importe quelle version satisfait la condition.

Filtre d'expression régulière sur valeur de colonne unique

Appelez NewSingleColumnValueRegexFilter(columnName, comparator, rule, value) pour créer un filtre d'expression régulière. Seules les colonnes d'attributs de type STRING prennent en charge les filtres d'expression régulière.

En plus des paramètres d'un filtre de valeur sur colonne unique, spécifiez un objet ValueTransferRule avec les paramètres suivants.

Nom

Type

Description

Regex (obligatoire)

string

L'expression régulière utilisée pour extraire une sous-chaîne. Longueur maximale : 256 octets.

  • Les expressions régulières compatibles Perl (PCRE) et les expressions régulières mono-octet sont prises en charge.

  • Les motifs d'expression régulière ne peuvent pas contenir de caractères chinois.

  • Les groupes de capture sont pris en charge. Si une expression régulière contient des groupes de capture, la sous-chaîne capturée par le premier groupe est utilisée. Par exemple, si la valeur de la colonne d'attribut est 1aaa51bbb5 et que l'expression régulière est 1([a-z]+)5, la sous-chaîne extraite est aaa.

Cast_type (obligatoire)

VariantType

Le type vers lequel la sous-chaîne extraite est convertie. Valeurs valides : Variant_INTEGER, Variant_DOUBLE et Variant_STRING.

Filtre composite

Appelez NewCompositeColumnCondition(lo) pour créer un filtre composite, puis appelez AddFilter pour ajouter des sous-filtres.

Nom

Type

Description

Operator (obligatoire)

LogicalOperator

L'opérateur logique. Valeurs valides : LO_NOT, LO_AND et LO_OR.

Filters (obligatoire)

[]ColumnFilter

Les sous-filtres à combiner. Les types suivants sont pris en charge :

  • Filtres de valeur sur colonne unique créés à l'aide de NewSingleColumnCondition.

  • Filtres d'expression régulière sur valeur de colonne unique créés à l'aide de NewSingleColumnValueRegexFilter.

  • Filtres composites créés à l'aide de NewCompositeColumnCondition. Un filtre composite peut contenir des sous-filtres imbriqués.

Filtre de pagination de colonnes

L'objet PaginationFilter contient les paramètres suivants.

Nom

Type

Description

Limit (obligatoire)

int32

Le nombre de colonnes d'attributs à renvoyer. La valeur doit être supérieure à 0.

Offset (facultatif)

int32

Le nombre de colonnes d'attributs à ignorer. La valeur doit être supérieure ou égale à 0. Valeur par défaut : 0.

Exemples

Filtre d'expression régulière

L'exemple suivant extrait active d'une valeur de colonne profile au format level:active et compare le résultat avec une valeur spécifiée.

rule := tablestore.NewValueTransferRule(
    `level:([a-z]+)`,
    tablestore.Variant_STRING,
)
filter := tablestore.NewSingleColumnValueRegexFilter(
    "profile",
    tablestore.CT_EQUAL,
    rule,
    "active",
)
request.SingleRowQueryCriteria.Filter = filter

Filtre composite

L'exemple suivant renvoie les lignes pour lesquelles score >= 60 et status est égal à active.

filter := tablestore.NewCompositeColumnCondition(tablestore.LO_AND)
filter.AddFilter(
    tablestore.NewSingleColumnCondition("score", tablestore.CT_GREATER_EQUAL, int64(60)),
)
filter.AddFilter(
    tablestore.NewSingleColumnCondition("status", tablestore.CT_EQUAL, "active"),
)
request.RangeRowQueryCriteria.Filter = filter

Paginer les colonnes d'attributs renvoyées

L'exemple suivant ignore la première colonne d'attribut et renvoie les deux colonnes d'attributs suivantes.

request.SingleRowQueryCriteria.Filter = &tablestore.PaginationFilter{
    Offset: 1,
    Limit:  2,
}