Tous les produits
Search
Centre de documentation

Tablestore:Prefix query

Dernière mise à jour :Aug 18, 2026

Une requête par préfixe (PrefixQuery) permet de rechercher, dans un index de recherche, les lignes dont la valeur d'un champ commence par une chaîne spécifiée.

Vue d'ensemble

Une PrefixQuery identifie les valeurs de colonne qui débutent par un préfixe donné. Le comportement de la requête varie selon le type de données de la colonne :

  • Keyword : Type de données chaîne basique. Les performances se dégradent à mesure que le volume de données augmente. Ce type convient uniquement aux petits jeux de données.

  • FuzzyKeyword : Type optimisé pour les recherches floues, telles que les requêtes par préfixe. Les performances restent stables quel que soit le volume de données. Ce type est recommandé pour la plupart des scénarios de requête par préfixe.

  • Text : Les valeurs de la colonne sont tokenisées avant l'indexation. Une ligne correspond si au moins un token résultant commence par le préfixe spécifié. En raison de l'imprévisibilité de la tokenisation, les résultats peuvent être aléatoires. Ce type de données est pris en charge uniquement à des fins de compatibilité et doit être utilisé avec prudence.

Choix du type de données

Le tableau suivant résume l'adéquation de chaque type de données pour les requêtes par préfixe.

Type

Performances

Recommandation

Keyword

Dégradation proportionnelle au volume de données

Réservé aux petits jeux de données

FuzzyKeyword

Stabilité garantie indépendamment du volume

Privilégié pour la majorité des cas d'usage

Text

Résultats imprévisibles liés à la tokenisation

Déconseillé

Exemples de correspondance par préfixe

Supposons qu'une colonne contienne les valeurs suivantes : hangzhou, beijing, shanghai et harbin.

  • Le préfixe hang correspond à hangzhou, mais pas à beijing, shanghai ni à harbin.

  • Le préfixe ha correspond à la fois à hangzhou et à harbin.

API

Effectuez une requête par préfixe via l'API Search ou ParallelScan. Le type de requête est PrefixQuery.

Paramètres

Paramètre

Description

query

Type de requête. Définissez cette valeur sur PrefixQuery.

fieldName

Nom de la colonne cible.

prefix

Chaîne de préfixe à comparer aux valeurs de la colonne.

Pour les colonnes de type Text, les valeurs sont tokenisées avant la comparaison. Une ligne correspond si au moins un token débute par le préfixe indiqué.

getTotalCount

Indique s'il faut retourner le nombre total de lignes correspondantes. La valeur par défaut est false.

Définir ce paramètre sur true accroît la latence de la requête.

weight

Le poids de la requête doit être un nombre à virgule flottante positif. Dans le cadre d'une recherche plein texte, ce paramètre ajuste la contribution de la colonne au score de pertinence BM25. Une valeur plus élevée renforce l'influence de la colonne sur le classement.

Ce paramètre n'affecte pas le jeu de résultats retourné, mais uniquement le score BM25 de chaque ligne dans les résultats.

tableName

Nom de la table de données.

indexName

Nom de l'index de recherche.

columnsToGet

Spécifie les colonnes à retourner pour chaque ligne correspondante. Configurez ce comportement à l'aide des paramètres returnAll et columns.

Par défaut, returnAll est défini sur false. Si columns n'est pas configuré, seules les colonnes de clé primaire sont retournées. Si columns est défini, seules les colonnes spécifiées sont incluses.

Définissez returnAll sur true pour retourner toutes les colonnes.

Utilisation

Les requêtes par préfixe s'exécutent depuis la console Tablestore, l'outil en ligne de commande ou un SDK. Avant de commencer, assurez-vous de remplir les conditions préalables suivantes.

Important

La PrefixQuery sur les colonnes FuzzyKeyword n'est actuellement prise en charge que via le SDK Tablestore. La console et l'outil en ligne de commande ne supportent que les colonnes Keyword.

Utiliser la console

  1. Accédez à l'onglet Index Management.

    1. Connectez-vous à la console Table Store.

    2. Dans la barre de navigation supérieure, sélectionnez un groupe de ressources et une région.

    3. Sur la page Overview, cliquez sur le nom de l'instance ou sur Instance Management dans la colonne Actions.

    4. Dans l'onglet Instance Details, sous l'onglet Data Table List, cliquez sur le nom de la table de données ou sur Index Management dans la colonne Actions.

  2. Dans l'onglet Index Management, localisez l'index de recherche cible et cliquez sur Search dans la colonne Actions.

  3. Dans la boîte de dialogue Search, configurez les conditions de requête.

    1. Par défaut, toutes les colonnes sont retournées. Pour sélectionner des colonnes spécifiques, désactivez l'option Retrieve All Columns et saisissez les noms des colonnes séparés par des virgules.

      Remarque

      Par défaut, Table Store retourne les colonnes de clé primaire de la table de données.

    2. Choisissez un opérateur logique : And, Or ou Not.

      Avec And, la requête retourne les données satisfaisant toutes les conditions. L'opérateur Or inclut les données vérifiant au moins une condition. Enfin, Not exclut les données correspondant aux conditions définies.

    3. Sélectionnez un champ d'index et cliquez sur Add.

    4. Définissez le type de requête sur Prefix query (PrefixQuery) et saisissez la valeur du préfixe.

    5. Le tri est désactivé par défaut. Pour ordonner les résultats selon un champ spécifique, activez Enable Sorting, ajoutez le champ de tri et configurez l'ordre de tri.

    6. L'agrégation est désactivée par défaut. Pour effectuer une agrégation statistique sur un champ donné, activez Enable Aggregation, ajoutez le champ concerné et configurez les paramètres d'agrégation.

  4. Cliquez sur OK.

    Les résultats de la requête s'affichent dans l'onglet Index Management.

Utiliser l'outil en ligne de commande

Exécutez la commande search pour interroger des données via un index de recherche. Pour plus d'informations, consultez Index de recherche.

Important

L'outil en ligne de commande prend en charge les requêtes par préfixe uniquement sur les colonnes Keyword, et non sur les colonnes FuzzyKeyword.

  1. Lancez la commande search pour interroger les données à l'aide de l'index de recherche search_index et retourner toutes les colonnes indexées.

    search -n search_index --return_all_indexed
  2. Saisissez les conditions de requête lorsque vous y êtes invité. Voici un exemple de code :

    {
        "Offset": -1,
        "Limit": 10,
        "Collapse": null,
        "Sort": null,
        "GetTotalCount": true,
        "Token": null,
        "Query": {
            "Name": "PrefixQuery",
            "Query": {
                "FieldName": "col_keyword",
                "Prefix": "hangzhou"
            }
        }
    }

Utiliser un SDK

Effectuez une requête par préfixe à l'aide du SDK Java, du SDK Go, du SDK Python, du SDK Node.js, du SDK .NET ou du SDK PHP. L'exemple ci-dessous utilise le SDK Java.

Remarque

L'instruction de requête est identique pour les types Keyword et FuzzyKeyword. La seule différence réside dans le type de données de la colonne interrogée.

Facturation

L'interrogation de données via un index de recherche consomme du débit de lecture. Pour plus d'informations, consultez Mesure et facturation des index de recherche.

FAQ

Documents associés