Todos os produtos
Search
Central de documentação

Tablestore:Consulta por distância geográfica

Última atualização: Jul 03, 2026

A consulta por distância geográfica permite especificar uma área geográfica circular, definida por um ponto central e um raio, como condição de busca. O Tablestore retorna as linhas cujo valor da coluna especificada esteja dentro dessa área circular.

Operações de API

Para consultar por distância geográfica, defina o tipo de consulta como GeoDistanceQuery na operação Search ou ParallelScan.

Parâmetros

Parâmetro

Descrição

fieldName

Nome da coluna a ser consultada. O valor deste parâmetro deve ser do tipo de dados GEOPOINT.

centerPoint

Par de coordenadas do ponto central, composto por valores de latitude e longitude.

O valor deve estar no formato latitude,longitude. Valores válidos para latitude: [-90,+90]. Valores válidos para longitude: [-180,+180]. Exemplo: 35.8,-45.91.

distanceInMeter

Raio da área geográfica circular. O valor é do tipo DOUBLE. Unidade: metros.

getTotalCount

Define se o número total de linhas que atendem às condições da consulta deve ser retornado. O valor padrão é false, indicando que a contagem total não será retornada.

Definir este parâmetro como true pode comprometer o desempenho da consulta.

query

Instrução de consulta para o índice de busca. Defina este parâmetro como GeoDistanceQuery.

tableName

Nome da tabela de dados.

indexName

Nome do índice de busca.

columnsToGet

Indica se todas as colunas de cada linha correspondente devem ser retornadas. Configure os campos returnAll e columns para este parâmetro.

O campo returnAll tem como padrão false, o que significa que nem todas as colunas são retornadas. Nesse caso, use o campo columns para especificar quais colunas deseja obter. Se nenhuma coluna for especificada, apenas as colunas de chave primária serão retornadas.

Ao definir o campo returnAll como true, todas as colunas são incluídas na resposta.

Métodos

É possível executar consultas por distância geográfica usando o console do Tablestore, a CLI do Tablestore e os SDKs do Tablestore. Antes de iniciar, certifique-se de atender aos seguintes pré-requisitos:

Usar o console do Tablestore

  1. Acesse a aba Index Management.

    1. Faça login no console do Table Store.

    2. Na barra de navegação superior, selecione um grupo de recursos e uma região.

    3. Na página Overview, clique em nome da instância ou em Instance Management na coluna Actions.

    4. Na aba Instance Details, dentro da aba Data Table List, clique em nome da tabela de dados ou em Index Management na coluna Actions.

  2. Na aba Index Management, localize o Índice de Busca desejado e clique em Search na coluna Actions.

  3. Na caixa de diálogo Search, configure os parâmetros da consulta.

    1. Por padrão, todas as colunas são retornadas. Para retornar colunas específicas, desative a opção Retrieve All Columns e insira os nomes das colunas separados por vírgulas.

      Nota

      Por padrão, o Table Store retorna as colunas de chave primária da tabela de dados.

    2. Escolha um operador lógico: And, Or ou Not.

      Ao selecionar And, a consulta retorna dados que atendem a todas as condições especificadas. A opção Or retorna dados que satisfazem pelo menos uma das condições. Já a opção Not traz resultados que não correspondem às condições definidas.

    3. Selecione um campo de índice do tipo GEOPOINT e clique em Add.

    4. Defina o tipo de consulta do campo de índice como GeoDistanceQuery. Insira as coordenadas do ponto central, selecione o ponto e informe a distância.

      Para adicionar múltiplos pares de coordenadas de pontos centrais, repita a operação anterior.

    5. A ordenação vem desativada por padrão. Para classificar os resultados por um campo específico, ative Enable Sorting, adicione o campo de ordenação e configure a ordem desejada.

    6. A agregação também é desativada inicialmente. Para realizar uma agregação estatística em um campo, ative Enable Aggregation, adicione o campo para agregação e ajuste as configurações correspondentes.

  4. Clique em OK.

    Os resultados da consulta aparecerão na aba Index Management.

Usar a CLI do Tablestore

Utilize a CLI do Tablestore para executar o comando search e consultar dados por meio de índices de busca. Para mais informações, consulte Índice de busca.

  1. Execute o comando search utilizando o índice de busca search_index para consultar dados e retornar todas as colunas indexadas de cada linha correspondente.

    search -n search_index --return_all_indexed
  2. O exemplo abaixo mostra como inserir as condições de consulta conforme solicitado pelo sistema:

    {
        "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
            }
        }
    }

Usar SDKs do Tablestore

Consultas por distância geográfica podem ser realizadas com o SDK do Tablestore para Java, SDK do Tablestore para Go, SDK do Tablestore para Python, SDK do Tablestore para Node.js, SDK do Tablestore para .NET e SDK do Tablestore para PHP. O exemplo a seguir utiliza o SDK do Tablestore para Java para demonstrar a execução desse tipo de consulta.

O código abaixo ilustra como buscar linhas onde o valor da coluna Col_GeoPoint esteja dentro de uma distância específica do ponto central.

public static void geoDistanceQuery(SyncClient client) {
    SearchQuery searchQuery = new SearchQuery();
    GeoDistanceQuery geoDistanceQuery = new GeoDistanceQuery();  // Use GeoDistanceQuery. 
    geoDistanceQuery.setFieldName("Col_GeoPoint");
    geoDistanceQuery.setCenterPoint("5,5"); // Specify the coordinates of the central point. 
    geoDistanceQuery.setDistanceInMeter(10000); // Set the distance from the central point to a value greater than or equal to 10,000. Unit: meter. 
    searchQuery.setQuery(geoDistanceQuery);
    //searchQuery.setGetTotalCount(true); // Set the GetTotalCount parameter to true to return the total number of rows that meet the query conditions. 

    SearchRequest searchRequest = new SearchRequest("<TABLE_NAME>", "<SEARCH_INDEX_NAME>", searchQuery);
    // You can use the columnsToGet parameter to specify the columns that you want to return or specify that all columns are returned. If you do not specify this parameter, only the primary key columns are returned. 
    //SearchRequest.ColumnsToGet columnsToGet = new SearchRequest.ColumnsToGet();
    //columnsToGet.setReturnAll(true); // Specify that all columns are returned. 
    //columnsToGet.setColumns(Arrays.asList("ColName1","ColName2")); // Specify the columns that you want to return. 
    //searchRequest.setColumnsToGet(columnsToGet);

    SearchResponse resp = client.search(searchRequest);
    //System.out.println("TotalCount: " + resp.getTotalCount()); // Display the total number of rows that meet the query conditions instead of the number of rows that are returned. 
    System.out.println("Row: " + resp.getRows());
}

Faturamento

A consulta de dados via Índice de Busca consome throughput de leitura. Para mais informações, veja Medição e faturamento do Índice de Busca.

Perguntas frequentes

Referências