Todos los productos
Search
Centro de documentos

Tablestore:Consulta geográfica

Última actualización: Sep 22, 2026

Las consultas geográficas se clasifican en los siguientes tipos: consulta por distancia geográfica, consulta por cuadro delimitador geográfico y consulta por polígono geográfico.

Requisitos previos

Consulta por distancia geográfica

Para ejecutar una consulta por distancia geográfica, especifique un área geográfica circular mediante un punto central y un radio. Tablestore devuelve las filas donde el valor de una columna específica se encuentra dentro de dicha área circular.

  • Parámetros

    Parámetro

    Descripción

    table_name

    El nombre de la tabla de datos.

    index_name

    El nombre del índice de búsqueda.

    query

    La instrucción de consulta para el índice de búsqueda. Para usar la consulta por distancia geográfica, establezca el tipo de consulta como QueryTypeConst::GEO_DISTANCE_QUERY.

    field_name

    El nombre de la columna que desea consultar. El valor de este parámetro es del tipo de datos GEOPOINT.

    center_point

    El par de coordenadas del punto central, compuesto por los valores de latitud y longitud.

    El formato del par de coordenadas es latitude,longitude. Los valores válidos de latitud son [-90,+90] y los de longitud son [-180,+180]. Ejemplo: 35.8,-45.91.

    distance

    El radio del área geográfica circular. El valor de este parámetro es del tipo de datos DOUBLE. Unidad: metros.

  • Ejemplos

    A continuación se muestra un ejemplo de código para consultar todas las filas de una tabla de datos cuyo valor en la columna geo no supere los 1000 metros de distancia respecto al punto central 30.001,120.001.

    $request = array(
        'table_name' => 'php_sdk_test',
        'index_name' => 'php_sdk_test_search_index',
        'search_query' => array(
            'offset' => 0,
            'limit' => 2,
            'get_total_count' => true,
            'query' => array(
                'query_type' => QueryTypeConst::GEO_DISTANCE_QUERY,
                'query' => array(
                    'field_name' => 'geo',
                    'center_point' => '30.001,120.001',
                    'distance' => 1000
                )
            ),
            'sort' => array(
                array(
                    'geo_distance_sort' => array(
                        'field_name' => 'geo',
                        'order' => SortOrderConst::SORT_ORDER_ASC,
                        'distance_type' => GeoDistanceTypeConst::GEO_DISTANCE_PLANE,
                        'points' => array('30,120')
                    )
                ),
            )
        ),
        'columns_to_get' => array(
            'return_type' => ColumnReturnTypeConst::RETURN_SPECIFIED,
            'return_names' => array('geo')
        )
    );
    $response = $otsClient->search($request);

Consulta por cuadro delimitador geográfico

Para ejecutar una consulta por cuadro delimitador geográfico, especifique un área geográfica rectangular mediante una esquina superior izquierda y una esquina inferior derecha. Tablestore devuelve las filas donde el valor de una columna específica se encuentra dentro de dicha área rectangular.

  • Parámetros

    Parámetro

    Descripción

    table_name

    El nombre de la tabla de datos.

    index_name

    El nombre del índice de búsqueda.

    query

    La instrucción de consulta para el índice de búsqueda. Para usar la consulta por cuadro delimitador geográfico, establezca el tipo de consulta como QueryTypeConst::GEO_BOUNDING_BOX_QUERY.

    field_name

    El nombre de la columna que desea consultar. El valor de este parámetro es del tipo de datos GEOPOINT.

    top_left

    El par de coordenadas de la esquina superior izquierda del área geográfica rectangular.

    bottom_right

    El par de coordenadas de la esquina inferior derecha del cuadro rectangular. Un área geográfica rectangular se define mediante una esquina superior izquierda y una esquina inferior derecha.

    El formato del par de coordenadas es latitude,longitude. Los valores válidos de latitud son [-90,+90] y los de longitud son [-180,+180]. Ejemplo: 35.8,-45.91.

  • Ejemplos

    A continuación se muestra un ejemplo de código para consultar todas las filas de una tabla de datos cuyo valor en la columna geo se encuentre dentro del área rectangular definida por un punto superior izquierdo (coordenadas: 31,119) y un punto inferior derecho (coordenadas: 29,121).

    $request = array(
        'table_name' => 'php_sdk_test',
        'index_name' => 'php_sdk_test_search_index',
        'search_query' => array(
            'offset' => 0,
            'limit' => 2,
            'get_total_count' => true,
            'query' => array(
                'query_type' => QueryTypeConst::GEO_BOUNDING_BOX_QUERY,
                'query' => array(
                    'field_name' => 'geo',
                    'top_left' => '31,119',
                    'bottom_right' => '29,121'
                )
            ),
            'sort' => array(
                array(
                    'geo_distance_sort' => array(
                        'field_name' => 'geo',
                        'order' => SortOrderConst::SORT_ORDER_ASC,
                        'distance_type' => GeoDistanceTypeConst::GEO_DISTANCE_PLANE,
                        'points' => array('30,120')
                    )
                ),
            )
        ),
        'columns_to_get' => array(
            'return_type' => ColumnReturnTypeConst::RETURN_SPECIFIED,
            'return_names' => array('geo')
        )
    );
    $response = $otsClient->search($request);

Consulta por polígono geográfico

Para ejecutar una consulta por polígono geográfico, especifique un área geográfica poligonal mediante los pares de coordenadas de varios puntos. Tablestore devuelve las filas donde el valor de una columna específica se encuentra dentro de dicha área poligonal.

  • Parámetros

    Parámetro

    Descripción

    table_name

    El nombre de la tabla de datos.

    index_name

    El nombre del índice de búsqueda.

    query

    La instrucción de consulta para el índice de búsqueda. Para usar la consulta por polígono geográfico, establezca el tipo de consulta como QueryTypeConst::GEO_POLYGON_QUERY.

    field_name

    El nombre de la columna que desea consultar. El valor de este parámetro es del tipo de datos GEOPOINT.

    points

    Los pares de coordenadas de los puntos que definen el área geográfica poligonal. Un polígono se especifica mediante varios pares de coordenadas.

    El formato del par de coordenadas es latitude,longitude. Los valores válidos de latitud son [-90,+90] y los de longitud son [-180,+180]. Ejemplo: 35.8,-45.91.

  • Ejemplos

    A continuación se muestra un ejemplo de código para consultar todas las filas de una tabla de datos cuyo valor en la columna geo se encuentre dentro del área poligonal definida por los puntos con coordenadas 31,120, 29,121 y 29,119.

    $request = array(
        'table_name' => 'php_sdk_test',
        'index_name' => 'php_sdk_test_search_index',
        'search_query' => array(
            'offset' => 0,
            'limit' => 2,
            'get_total_count' => true,
            'query' => array(
                'query_type' => QueryTypeConst::GEO_POLYGON_QUERY,
                'query' => array(
                    'field_name' => 'geo',
                    'points' => array(
                        "31,120",
                        "29,121",
                        "29,119"
                    )
                )
            ),
            'sort' => array(
                array(
                    'geo_distance_sort' => array(
                        'field_name' => 'geo',
                        'order' => SortOrderConst::SORT_ORDER_ASC,
                        'distance_type' => GeoDistanceTypeConst::GEO_DISTANCE_PLANE,
                        'points' => array('30,120')
                    )
                ),
            )
        ),
        'columns_to_get' => array(
            'return_type' => ColumnReturnTypeConst::RETURN_SPECIFIED,
            'return_names' => array('geo')
        )
    );
    $response = $otsClient->search($request);

Preguntas frecuentes

Referencias

  • Cuando utilice un índice de búsqueda para consultar datos, puede emplear los siguientes métodos de consulta: term query, terms query, match all query, match query, match phrase query, prefix query, range query, wildcard query, Boolean query, geo query, nested query y exists query. Según sus necesidades de negocio, combine distintos métodos para consultar datos desde múltiples dimensiones.

    Si necesita ordenar o paginar las filas que cumplen las condiciones de consulta, utilice la función de ordenamiento y paginación. Para obtener más información, consulte Sorting and paging.

    Para agrupar el conjunto de resultados con base en una columna específica, utilice la función de colapso (distinct). De esta manera, los datos del tipo especificado aparecerán solo una vez en los resultados de la consulta. Para obtener más información, consulte Collapse (distinct).

  • Si requiere analizar los datos de una tabla de datos, por ejemplo, para obtener los valores extremos, la suma y el número total de filas, ejecute operaciones de agregación o instrucciones SQL. Para obtener más información, consulte Aggregation y SQL query.

  • Cuando necesite obtener rápidamente todas las filas que cumplen las condiciones de consulta sin ordenarlas, llame a las operaciones ParallelScan y ComputeSplits para utilizar la función de escaneo paralelo. Para obtener más información, consulte Parallel scan.