Tous les produits
Search
Centre de documentation

Tablestore:Requête géographique

Dernière mise à jour :Aug 18, 2026

Les requêtes géographiques se divisent en trois catégories : la requête par distance géographique, la requête par cadre de délimitation géographique et la requête par polygone géographique.

Prérequis

Requête par distance géographique

La requête par distance géographique permet de définir une zone circulaire à partir d'un point central et d'un rayon comme condition de filtrage. Tablestore renvoie les lignes dont la valeur de la colonne Geopoint se situe dans cette zone circulaire.

  • Paramètres

    Paramètre

    Description

    tableName

    Nom de la table de données.

    indexName

    Nom de l'index de recherche.

    query

    Type de requête. Définissez ce paramètre sur TableStore.QueryType.GEO_DISTANCE_QUERY.

    fieldName

    Nom du champ. Le type des valeurs du champ doit être Geopoint.

    centerPoint

    Paire de coordonnées du point central, composée de la latitude et de la longitude.

    Ce paramètre doit respecter le format « latitude,longitude ». La latitude doit être comprise entre [-90,90] et la longitude entre [-180 180]. Exemple : « 35,8,-45,91 ».

    distance

    Rayon de la zone circulaire. Ce paramètre accepte une valeur de type DOUBLE. L'unité est le mètre.

  • Exemples

    L'extrait de code suivant illustre comment interroger les lignes dont la valeur de la colonne Col_GeoPoint se trouve dans une zone circulaire spécifique.

    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 specific data, set the limit parameter to 0. 
            query: { // Set the query type to TableStore.QueryType.GEO_DISTANCE_QUERY. 
                queryType: TableStore.QueryType.GEO_DISTANCE_QUERY,
                query: {
                    fieldName: "Col_GeoPoint",
                    centerPoint: "1,1", // Specify the coordinate pair for the central point. 
                    distance: 10000 // Set the distance from the central point to a value smaller than or equal to 10,000. Unit: meter. 
                }
            },
            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 the 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));
    });

Requête par cadre de délimitation géographique

La requête par cadre de délimitation géographique permet de définir une zone rectangulaire comme condition de filtrage. Tablestore renvoie les lignes dont la valeur de la colonne Geopoint se situe dans cette zone rectangulaire.

  • Paramètres

    Paramètre

    Description

    tableName

    Nom de la table de données.

    indexName

    Nom de l'index de recherche.

    query

    Type de requête. Définissez ce paramètre sur TableStore.QueryType.GEO_BOUNDING_BOX_QUERY.

    fieldName

    Nom du champ. Le type des valeurs du champ doit être Geopoint.

    topLeft

    Paire de coordonnées du coin supérieur gauche de la zone rectangulaire.

    bottomRight

    Paire de coordonnées du coin inférieur droit de la zone rectangulaire. Les paires de coordonnées des coins supérieur gauche et inférieur droit définissent une zone rectangulaire unique.

    Ce paramètre doit respecter le format « latitude,longitude ». La latitude doit être comprise entre [-90,90] et la longitude entre [-180 180]. Exemple : « 35,8,-45,91 ».

  • Exemples

    L'extrait de code suivant illustre comment interroger les lignes dont la valeur de la colonne Col_GeoPoint se trouve dans une zone rectangulaire définie par un coin supérieur gauche aux coordonnées « 10,0 » et un coin inférieur droit aux coordonnées « 0,10 » :

    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 specific data, set the limit parameter to 0. 
            query: { // Set the query type to TableStore.QueryType.GEO_BOUNDING_BOX_QUERY. 
                queryType: TableStore.QueryType.GEO_BOUNDING_BOX_QUERY,
                query: {
                    fieldName: "Col_GeoPoint", // Specify the name of the field. 
                    topLeft: "10,0", // Specify the coordinate pair for the upper-left corner of the rectangular geographical area. 
                    bottomRight: "0,10" // Specify coordinate pair for the lower-right corner of the rectangular geographical area. 
                }
            },
            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 the 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));
    });

Requête par polygone géographique

La requête par polygone géographique permet de définir une zone polygonale. Tablestore renvoie les lignes dont la valeur de la colonne Geopoint se situe dans cette zone polygonale.

  • Paramètres

    Paramètre

    Description

    tableName

    Nom de la table de données.

    indexName

    Nom de l'index de recherche.

    query

    Type de requête. Définissez ce paramètre sur TableStore.QueryType.GEO_POLYGON_QUERY.

    fieldName

    Nom du champ. Le type des valeurs du champ doit être Geopoint.

    points

    Paires de coordonnées des points définissant la zone polygonale.

    Chaque paire de coordonnées doit respecter le format « latitude,longitude ». La latitude doit être comprise entre [-90,90] et la longitude entre [-180 180]. Exemple : « 35,8,-45,91 ».

  • Exemples

    L'extrait de code suivant illustre comment interroger les lignes dont la valeur de la colonne Col_GeoPoint se trouve dans une zone polygonale :

    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 specific data, set the limit parameter to 0. 
            query: { // Set the query type to TableStore.QueryType.GEO_POLYGON_QUERY. 
                queryType: TableStore.QueryType.GEO_POLYGON_QUERY,
                query: {
                    fieldName: "Col_GeoPoint",
                    points: ["0,0","5,5","5,0"] // Specify coordinate pairs for vertices of a polygon geographical area. 
                }
            },
            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 the 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

  • 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 match phrase, 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 le type de requête adapté à vos besoins métier.

    Pour trier ou paginer les lignes correspondant aux conditions de 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 selon 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, par exemple pour obtenir les valeurs extrêmes, la somme ou 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 récupérer rapidement toutes les lignes correspondant aux conditions de requête sans avoir besoin de les trier, appelez les opérations ParallelScan et ComputeSplits afin d'utiliser la fonctionnalité d'analyse parallèle. Pour plus d'informations, consultez la rubrique Analyse parallèle.