Tous les produits
Search
Centre de documentation

Tablestore:Requête de distance géographique

Dernière mise à jour :Aug 18, 2026

Une requête de distance géographique permet de spécifier une zone géographique circulaire, définie par un point central et un rayon, comme condition de recherche. Tablestore renvoie les lignes dont la valeur de la colonne spécifiée se situe dans cette zone circulaire.

Opérations API

Pour effectuer des requêtes de distance géographique, définissez le type de requête sur GeoDistanceQuery dans l'opération Search ou ParallelScan.

Paramètres

Paramètre

Description

fieldName

Nom de la colonne à interroger. La valeur de ce paramètre est de type GEOPOINT.

centerPoint

Paire de coordonnées du point central, composée d'une latitude et d'une longitude.

La valeur de ce paramètre doit respecter le format latitude,longitude. Les valeurs valides pour la latitude sont [-90,+90]. Les valeurs valides pour la longitude sont [-180,+180]. Exemple : 35,8,-45,91.

distanceInMeter

Rayon de la zone géographique circulaire. La valeur de ce paramètre est de type DOUBLE. Unité : mètres.

getTotalCount

Indique si le nombre total de lignes correspondant aux conditions de la requête doit être renvoyé. La valeur par défaut est false, ce qui signifie que le nombre total n'est pas renvoyé.

Si vous définissez ce paramètre sur true, les performances de la requête seront dégradées.

query

Instruction de requête pour l'index de recherche. Définissez ce paramètre sur GeoDistanceQuery.

tableName

Nom de la table de données.

indexName

Nom de l'index de recherche.

columnsToGet

Indique si toutes les colonnes de chaque ligne correspondant aux conditions de la requête doivent être renvoyées. Vous pouvez spécifier les champs returnAll et columns pour ce paramètre.

La valeur par défaut du champ returnAll est false, ce qui signifie que toutes les colonnes ne sont pas renvoyées. Dans ce cas, utilisez le champ columns pour spécifier les colonnes à renvoyer. Si vous ne spécifiez aucune colonne, seules les colonnes de clé primaire sont renvoyées.

Si vous définissez le champ returnAll sur true, toutes les colonnes sont renvoyées.

Méthodes

Vous pouvez effectuer des requêtes de distance géographique via la console Tablestore, l'interface CLI Tablestore et les SDK Tablestore. Avant de commencer, assurez-vous que les conditions préalables suivantes sont remplies :

Utiliser la console Tablestore

  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. Sous l'onglet Instance Details, dans l'onglet Data Table List, cliquez sur le nom de la table de données ou sur Index Management dans la colonne Actions.

  2. Sous 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 paramètres de la requête.

    1. Par défaut, toutes les colonnes sont renvoyées. Pour renvoyer 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 renvoie les colonnes de clé primaire de la table de données.

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

      Si vous sélectionnez And, la requête renvoie les données qui satisfont à toutes les conditions spécifiées. Si vous sélectionnez Or, la requête renvoie les données qui satisfont à au moins l'une des conditions spécifiées. Si vous sélectionnez Not, la requête renvoie les données qui ne satisfont pas aux conditions spécifiées.

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

    4. Définissez le type de requête pour le champ d'index sur GeoDistanceQuery. Saisissez les coordonnées du point central, sélectionnez le point et indiquez la distance.

      Pour saisir plusieurs paires de coordonnées de points centraux, répétez l'opération précédente.

    5. Le tri est désactivé par défaut. Pour trier les résultats selon un champ spécifique, activez l'option 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 spécifique, activez l'option Enable Aggregation, ajoutez le champ d'agrégation et configurez les paramètres d'agrégation.

  4. Cliquez sur OK.

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

Utiliser l'interface CLI Tablestore

Vous pouvez utiliser l'interface CLI Tablestore pour exécuter la commande search afin d'interroger des données à l'aide d'index de recherche. Pour plus d'informations, consultez la rubrique Index de recherche.

  1. Exécutez la commande search pour utiliser l'index de recherche search_index afin d'interroger les données et renvoyer toutes les colonnes indexées de chaque ligne correspondant aux conditions de la requête.

    search -n search_index --return_all_indexed
  2. L'exemple de code suivant montre comment saisir les conditions de requête telles qu'invitées par le système :

    {
        "Offset": -1,
        "Limit": 10,
        "Collapse": null,
        "Sort": null,
        "GetTotalCount": true,
        "Token": null,
        "Query": {
            "Name": "GeoDistanceQuery",
            "Query": {
                "FieldName": "col_geopoint",
                "CenterPoint": "35.8,-45.91",
                "DistanceInMeter": 100.0
            }
        }
    }

Utiliser les SDK Tablestore

Vous pouvez effectuer des requêtes de distance géographique à l'aide du SDK Tablestore pour Java, du SDK Tablestore pour Go, du SDK Tablestore pour Python, du SDK Tablestore pour Node.js, du SDK Tablestore pour .NET et du SDK Tablestore pour PHP. L'exemple suivant utilise le SDK Tablestore pour Java pour illustrer la procédure.

String tableName = "example_table";
String indexName = "example_index";

GeoDistanceQuery geoDistanceQuery = new GeoDistanceQuery();
geoDistanceQuery.setFieldName("location");
geoDistanceQuery.setCenterPoint("0,0");
geoDistanceQuery.setDistanceInMeter(120000);

SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(geoDistanceQuery);
searchQuery.setLimit(10);
searchQuery.setTrackTotalCount(SearchQuery.TRACK_TOTAL_COUNT);

SearchRequest request = new SearchRequest(tableName, indexName, searchQuery);
SearchRequest.ColumnsToGet columnsToGet = new SearchRequest.ColumnsToGet();
columnsToGet.setReturnAll(true);
request.setColumnsToGet(columnsToGet);

SearchResponse response = client.search(request);
System.out.println(response.getTotalCount());
System.out.println(response.getRows());

Facturation

L'interrogation de données à l'aide d'un index de recherche consomme du débit de lecture. Pour plus d'informations, consultez la rubrique Mesure et facturation de l'index de recherche.

FAQ

Références