Todos los productos
Search
Centro de documentos

Tablestore:Range query

Última actualización: Sep 03, 2026

Una consulta de rango en un índice de búsqueda con el Tablestore SDK for Java filtra los datos mediante límites inferior y superior de valores de campo, y permite incluir o excluir cada límite.

Requisitos previos

Instale Tablestore SDK for Java e inicialice un cliente.

Descripción de la función

Una consulta de rango coincide con las filas cuyos valores de campo indexado se encuentran dentro de un intervalo especificado. Es posible establecer solo un límite inferior, solo un límite superior o ambos. Como mínimo, se requiere un límite. Para un campo Text, una fila coincide si cualquier token generado a partir del valor del campo cae dentro del intervalo.

Utilice greaterThan, greaterThanOrEqual, lessThan y lessThanOrEqual para especificar las condiciones mayor que, mayor o igual que, menor que y menor o igual que. Establezca el tipo de consulta como RangeQuery al llamar a search.

SearchResponse search(SearchRequest request)

El siguiente ejemplo consulta valores Long en el campo price que se encuentran dentro del intervalo semiabierto [100, 500). La consulta devuelve hasta 10 filas y el número total de coincidencias.

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

RangeQuery rangeQuery = new RangeQuery();
rangeQuery.setFieldName("price");
rangeQuery.greaterThanOrEqual(ColumnValue.fromLong(100L));
rangeQuery.lessThan(ColumnValue.fromLong(500L));

SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(rangeQuery);
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());

Parámetros

Solicitud de búsqueda

request es un objeto SearchRequest que contiene los siguientes parámetros.

Nombre

Tipo

Descripción

tableName (obligatorio)

String

El nombre de la tabla de datos.

indexName (obligatorio)

String

El nombre del índice de búsqueda.

searchQuery (obligatorio)

SearchQuery

La condición de consulta y la configuración general de la consulta.

columnsToGet (opcional)

SearchRequest.ColumnsToGet

Las columnas que se devolverán. Si no se configura este parámetro, solo se devuelven las columnas de clave principal.

timeoutInMillisecond (opcional)

int

El tiempo de espera de la consulta a nivel de solicitud, en milisegundos. El valor predeterminado es -1, lo que indica que no se configura un tiempo de espera de consulta por separado.

routingValues (opcional)

List<PrimaryKey>

Los valores de clave principal que corresponden a campos de enrutamiento personalizados. No establezca este parámetro si no se ha configurado el enrutamiento personalizado.

Configuración de la consulta

request.searchQuery es un objeto SearchQuery que contiene los siguientes parámetros.

Nombre

Tipo

Descripción

query (obligatorio)

Query

La condición de consulta. Establezca este parámetro como un objeto RangeQuery para realizar una consulta de rango.

offset (opcional)

Integer

La posición inicial de la consulta.

limit (opcional)

Integer

El número máximo de filas que se devolverán. Establezca este parámetro en 0 para no devolver ninguna fila.

highlight (opcional)

Highlight

La configuración de resumen y resaltado para campos Text. Para obtener detalles sobre la configuración, consulte Summary and highlighting.

collapse (opcional)

Collapse

La configuración de colapso de campos, que deduplica los resultados según un campo especificado. Para obtener detalles sobre la configuración, consulte Collapse query results.

sort (opcional)

Sort

El orden de clasificación de los resultados. Para obtener detalles sobre la configuración, consulte Sort and paginate results.

trackTotalCount (opcional)

int

El número máximo esperado de filas coincidentes que se contarán. El valor predeterminado es TRACK_TOTAL_COUNT_DISABLED, que deshabilita el conteo. Establezca este parámetro en TRACK_TOTAL_COUNT para contar todas las filas coincidentes. Un valor más pequeño mejora el rendimiento de la consulta.

filter (opcional)

SearchFilter

Un filtro que se aplica a los resultados de query.

aggregationList (opcional)

List<Aggregation>

La configuración de agregación. Para obtener detalles sobre la configuración, consulte Aggregation.

groupByList (opcional)

List<GroupBy>

La configuración de agrupación. Para obtener detalles sobre la configuración, consulte Aggregation.

token (opcional)

byte[]

El token de paginación. Establezca este parámetro con el valor nextToken de la respuesta anterior para continuar leyendo filas. Al establecer token, el SDK borra sort porque el token ya contiene las condiciones de clasificación.

Condición de consulta

request.searchQuery.query es un objeto RangeQuery que contiene los siguientes parámetros.

Nombre

Tipo

Descripción

fieldName (obligatorio)

String

El nombre del campo indexado que se consultará. Las consultas de rango admiten campos Long, Double, Boolean, Keyword, Text, Date e IP, así como subcampos de campos JSON Object. Para un campo Text, una fila coincide si algún token cae dentro del intervalo.

from (opcional)

ColumnValue

El límite inferior. Como mínimo, se requiere uno de from o to. Llame a greaterThan o greaterThanOrEqual para establecer el límite inferior y determinar si se incluye.

to (opcional)

ColumnValue

El límite superior. Como mínimo, se requiere uno de from o to. Llame a lessThan o lessThanOrEqual para establecer el límite superior y determinar si se incluye.

includeLower (opcional)

boolean

Especifica si se debe incluir from. El valor predeterminado es false. greaterThan establece este parámetro en false, mientras que greaterThanOrEqual lo establece en true.

includeUpper (opcional)

boolean

Especifica si se debe incluir to. El valor predeterminado es false. lessThan establece este parámetro en false, mientras que lessThanOrEqual lo establece en true.

Columnas devueltas

request.columnsToGet es un objeto SearchRequest.ColumnsToGet que contiene los siguientes parámetros.

Nombre

Tipo

Descripción

columns (opcional)

List<String>

Las columnas de atributos que se devolverán. Establezca este parámetro solo si tanto returnAll como returnAllFromIndex son false. Si omite este parámetro, solo se devuelven las columnas de clave principal.

returnAll (opcional)

boolean

Especifica si se deben devolver todas las columnas de atributos de la tabla de datos. El valor predeterminado es false.

returnAllFromIndex (opcional)

boolean

Especifica si se deben devolver todas las columnas de atributos indexadas. El valor predeterminado es false. No establezca returnAll y returnAllFromIndex en true simultáneamente.

Valores devueltos

search devuelve un objeto SearchResponse. La siguiente tabla describe los campos principales.

Nombre

Tipo

Descripción

totalCount

long

El número de filas coincidentes. Llame a getTotalCount() para obtener el valor. El valor devuelto depende de la configuración de trackTotalCount.

rows

List<Row>

Las filas devueltas por esta consulta. Llame a getRows() para obtener el valor. El número de filas no supera limit.

searchHits

List<SearchHit>

Los aciertos de la consulta. Llame a getSearchHits() para obtener el valor. Si se configura highlight, este campo contiene los datos de la fila junto con los resultados de resumen y resaltado.

nextToken

byte[]

El token de la página siguiente. Llame a getNextToken() para obtener el valor. Si el valor no es null, establézcalo como token en la siguiente solicitud para continuar leyendo filas.

isAllSuccess

boolean

Indica si todas las particiones del índice se consultaron correctamente. Llame a isAllSuccess() para obtener el valor. Si el valor es false, la respuesta contiene resultados parciales y totalCount podría ser menor que el número real de filas coincidentes.

Ejemplos de escenarios

Consultar fechas en un formato personalizado

Si date_string es un campo String en la tabla de datos y está asignado a un campo Date en el índice de búsqueda con el formato yyyy-MM-dd HH:mm:ss, utilice cadenas con el mismo formato como límites de la consulta. El siguiente ejemplo consulta el intervalo [2021-01-01 00:00:00, 2023-01-01 00:00:00).

RangeQuery rangeQuery = new RangeQuery();
rangeQuery.setFieldName("date_string");
rangeQuery.greaterThanOrEqual(ColumnValue.fromString("2021-01-01 00:00:00"));
rangeQuery.lessThan(ColumnValue.fromString("2023-01-01 00:00:00"));

Consultar marcas de tiempo epoch-second

Si date_epoch es un campo Integer en la tabla de datos y está asignado a un campo Date en el índice de búsqueda con el formato epoch_second, utilice marcas de tiempo epoch-second como límites de la consulta. El siguiente ejemplo consulta valores mayores que 1609459200.

RangeQuery rangeQuery = new RangeQuery();
rangeQuery.setFieldName("date_epoch");
rangeQuery.greaterThan(ColumnValue.fromLong(1609459200L));