Todos os produtos
Search
Central de documentação

Tablestore:Consulta de caixa delimitadora geográfica

Última atualização: Jul 03, 2026

A consulta de caixa delimitadora geográfica permite especificar uma área geográfica retangular como condição de busca. O Tablestore retorna as linhas cujo valor do campo especificado está dentro dessa área retangular.

Operações de API

Para executar consultas de caixa delimitadora geográfica, defina o tipo de consulta como GeoBoundingBoxQuery 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.

topLeft

Par de coordenadas do canto superior esquerdo da área geográfica retangular.

bottomRight

Par de coordenadas do canto inferior direito da área geográfica retangular. Você pode definir uma área retangular informando os cantos superior esquerdo e inferior direito.

O formato é latitude,longitude. Valores válidos para latitude: [-90,+90]. Valores válidos para longitude: [-180,+180]. Exemplo: 35,8,-45,91.

query

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

getTotalCount

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

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

tableName

Nome da tabela de dados.

indexName

Nome do índice de busca.

columnsToGet

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

Por padrão, o campo returnAll é false, indicando que nem todas as colunas serão devolvidas. Nesse caso, utilize o campo columns para escolher quais retornar. Se nenhuma coluna for especificada, apenas as colunas de chave primária serão incluídas no resultado.

Ao definir o campo returnAll como true, todas as colunas são retornadas.

Métodos

Você pode realizar consultas de caixa delimitadora 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 a consulta.

    1. Todas as colunas são retornadas por padrão. Para obter apenas colunas específicas, desative 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 traz dados que satisfazem todas as condições definidas. Com Or, o resultado inclui dados que atendem a pelo menos uma das condições. Já a opção Not retorna dados que não correspondem às condições estabelecidas.

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

    4. Defina o tipo de consulta do campo de índice como GeoBoundingBoxQuery e insira as coordenadas dos cantos superior esquerdo e inferior direito do retângulo.

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

    6. A agregação também permanece desativada inicialmente. Para aplicar agregação estatística em determinado campo, ative Enable Aggregation, inclua o campo alvo e ajuste as configurações de agregação.

  4. Clique em OK.

    Os resultados 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. Consulte Índice de busca para mais informações.

  1. Execute o comando search usando o índice search_index para buscar 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": "GeoBoundingBoxQuery",
            "Query": {
                "FieldName": "col_geopoint",
                "TopLeft": "10.0",
                "BottomRight": "0.10"
            }
        }
    }

Usar SDKs do Tablestore

Consultas de caixa delimitadora geográfica estão disponíveis nos seguintes SDKs: Tablestore SDK for Java, Tablestore SDK for Go, Tablestore SDK for Python, Tablestore SDK for Node.js, Tablestore SDK for .NET e Tablestore SDK for PHP. O exemplo a seguir utiliza o Tablestore SDK for Java para demonstrar essa funcionalidade.

Veja como consultar linhas onde o valor da coluna Col_GeoPoint está dentro da área retangular definida pelo canto superior esquerdo "10,0" e canto inferior direito "0,10":

public static void geoBoundingBoxQuery(SyncClient client) {
    SearchQuery searchQuery = new SearchQuery();
    GeoBoundingBoxQuery geoBoundingBoxQuery = new GeoBoundingBoxQuery(); // Use GeoBoundingBoxQuery. 
    geoBoundingBoxQuery.setFieldName("Col_GeoPoint"); // Specify the name of the column that you want to query. 
    geoBoundingBoxQuery.setTopLeft("10,0"); // Specify the coordinates of the upper-left corner of the rectangular geographic area. 
    geoBoundingBoxQuery.setBottomRight("0,10"); // Specify the coordinates of the lower-right corner of the rectangular geographic area. 
    searchQuery.setQuery(geoBoundingBoxQuery);
    //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

Consultar 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