Tous les produits
Search
Centre de documentation

Tablestore:Requête de correspondance d'expression

Dernière mise à jour :Aug 18, 2026

Une requête de correspondance d'expression est similaire à une requête de correspondance, à la différence qu'elle évalue la position des jetons. Une ligne satisfait la condition de recherche uniquement si l'ordre et la position des jetons dans la ligne correspondent exactement à ceux contenus dans le mot-clé. Si la méthode de tokenisation du champ interrogé est floue, la requête de correspondance d'expression offre une latence inférieure à celle d'une requête avec caractère générique.

Prérequis

Paramètres

Paramètre

Description

tableName

Nom de la table de données.

indexName

Nom de l'index de recherche.

offset

Position à partir de laquelle la requête commence.

limit

Nombre maximal de lignes que la requête doit renvoyer.

Pour interroger uniquement le nombre de lignes correspondant aux conditions sans récupérer les données spécifiques des lignes, définissez le paramètre limit sur 0.

queryType

Type de requête. Pour utiliser une requête de correspondance d'expression, définissez ce paramètre sur TableStore.QueryType.MATCH_PHRASE_QUERY.

fieldName

Nom du champ à faire correspondre.

La requête de correspondance d'expression s'applique aux champs TEXT.

text

Mot-clé utilisé pour faire correspondre la valeur du champ lors d'une requête de correspondance d'expression.

Si le champ à faire correspondre est de type TEXT, le mot-clé est divisé en plusieurs jetons selon le type d'analyseur spécifié lors de la création de l'index de recherche. Par défaut, une tokenisation par mot unique est appliquée si vous ne spécifiez pas le type d'analyseur lors de la création de l'index de recherche. Pour plus d'informations, consultez la rubrique Tokenisation.

Par exemple, une requête de correspondance d'expression basée sur l'expression « this is » correspond aux valeurs « ..., this is tablestore » et « this is a table », mais pas aux valeurs « this table is ... » ou « is this a table ».

getTotalCount

Indique s'il faut renvoyer le nombre total de lignes correspondant aux conditions de la requête. Valeur par défaut : false.

Si ce paramètre est défini sur true, les performances de la requête sont réduites.

columnToGet

Indique s'il faut renvoyer toutes les colonnes de chaque ligne correspondant aux conditions de la requête. Vous pouvez configurer returnType et returnNames pour ce paramètre.

  • Si vous définissez returnType sur TableStore.ColumnReturnType.RETURN_SPECIFIED, configurez returnNames pour spécifier les colonnes à renvoyer.

  • Si vous définissez le paramètre returnType sur TableStore.ColumnReturnType.RETURN_ALL, toutes les colonnes sont renvoyées.

  • Si vous définissez le paramètre returnType sur TableStore.ColumnReturnType.RETURN_ALL_FROM_INDEX, toutes les colonnes de l'index de recherche sont renvoyées.

  • Si vous définissez le paramètre returnType sur TableStore.ColumnReturnType.RETURN_NONE, seules les colonnes de clé primaire sont renvoyées.

Exemples

L'exemple de code suivant montre comment effectuer une requête de correspondance d'expression pour trouver les lignes dont la valeur de Col_Text correspond à l'expression « hangzhou shanghai » :

/**
 * Search the table for rows in which the value of Col_Text matches the entire phase "hangzhou shanghai" in order. 
 * Tablestore returns the number of rows that match the phrase and part of the matched rows in this query. 
 */
client.search({
    tableName: TABLE_NAME,
    indexName: INDEX_NAME,
    searchQuery: {
        offset: 0,
        limit: 10, // To query only the number of rows that meet the query conditions without returning specific data, set the limit parameter to 0. 
        query: {// Set the query type to TableStore.QueryType.MATCH_PHRASE_QUERY. 
            queryType: TableStore.QueryType.MATCH_PHRASE_QUERY,
            query: {
                fieldName: "Col_Text", // Specify the column that you want to match. 
                text: "hangzhou shanghai" // Specify the phase that you want to match. 
            }
        },
        getTotalCount: true // Specify whether to return the total number of rows that meet the query conditions. Default value: false. 
    },
    columnToGet: { // Specify the columns that you want to return. You can set the parameter to RETURN_SPECIFIED to return specified columns, RETURN_ALL to return all columns, RETURN_ALL_FROM_INDEX to return all columns in the search index, or RETURN_NONE to return only the primary key columns. 
        returnType: TableStore.ColumnReturnType.RETURN_ALL
    }
}, function (err, data) {
    if (err) {
        console.log('error:', err);
        return;
    }
    console.log('success:', JSON.stringify(data, null, 2));
});

FAQ

Références

Références

  • Les index de recherche prennent en charge les types de requêtes suivants : requête term, requête terms, requête match all, requête match, requête de correspondance d'expression, requête prefix, requête range, requête wildcard, requête Boolean, requête geo, requête nested, requête vector et requête exists. Sélectionnez un type de requête adapté à vos besoins métier.

    Pour trier ou paginer les lignes correspondant aux conditions de la requête, utilisez la fonctionnalité de tri et de pagination. Pour plus d'informations, consultez la rubrique Tri et pagination.

    Pour regrouper l'ensemble des résultats en fonction d'une colonne spécifique, utilisez la fonctionnalité de regroupement (distinct). Ainsi, les données du type spécifié n'apparaissent qu'une seule fois dans les résultats de la requête. Pour plus d'informations, consultez la rubrique Regroupement (distinct).

  • Pour analyser les données d'une table de données, par exemple pour obtenir les valeurs extrêmes, la somme et le nombre total de lignes, effectuez des opérations d'agrégation ou exécutez des instructions SQL. Pour plus d'informations, consultez les rubriques Agrégation et Requête SQL.

  • Pour obtenir rapidement toutes les lignes correspondant aux conditions de la requête sans avoir besoin de les trier, appelez les opérations ParallelScan et ComputeSplits pour utiliser la fonctionnalité d'analyse parallèle. Pour plus d'informations, consultez la rubrique Analyse parallèle.