Todos los productos
Search
Centro de documentos

Tablestore:Query Lastpoint data by using a search index

Última actualización: Sep 03, 2026

Utilice Tablestore SDK for Java para crear un índice de búsqueda en un índice Lastpoint y consultar los datos más recientes de cada serie temporal según las condiciones de los campos de datos.

Requisitos previos

Instale Tablestore SDK for Java e inicialice un cliente. Los índices Lastpoint requieren la versión 5.17.1 o posterior. Se recomienda utilizar la versión más reciente.

Descripción

Las lecturas directas desde un índice Lastpoint localizan los datos por rango de clave primaria. Para filtrar los datos más recientes por campos de datos mediante consultas booleanas, búsqueda de texto completo, consultas geográficas o agregaciones, cree un índice de búsqueda en el índice Lastpoint y llame a search. Para obtener más información sobre las capacidades de consulta, consulte Search indexes.

public CreateSearchIndexResponse createSearchIndex(CreateSearchIndexRequest request) throws TableStoreException, ClientException
public SearchResponse search(SearchRequest request) throws TableStoreException, ClientException

Creación de un índice de búsqueda

Solo se pueden consultar los campos incluidos en el esquema del índice de búsqueda. El campo _tags de un índice Lastpoint es una matriz de cadenas y debe asignarse como una matriz de Keyword. Asigne los demás campos de datos a sus tipos correspondientes.

El siguiente ejemplo crea example_search_index en example_lastpoint_index e indexa los campos tags, speed y status.

List<FieldSchema> fieldSchemas = Arrays.asList(
        new FieldSchema("_tags", FieldType.KEYWORD)
                .setIndex(true).setIsArray(true),
        new FieldSchema("speed", FieldType.DOUBLE)
                .setIndex(true).setEnableSortAndAgg(true),
        new FieldSchema("status", FieldType.KEYWORD)
                .setIndex(true).setEnableSortAndAgg(true));

IndexSchema indexSchema = new IndexSchema();
indexSchema.setFieldSchemas(fieldSchemas);

CreateSearchIndexRequest request = new CreateSearchIndexRequest();
request.setTableName("example_lastpoint_index");
request.setIndexName("example_search_index");
request.setIndexSchema(indexSchema);

client.createSearchIndex(request);

Consulta de los datos más recientes

La creación de un índice de búsqueda es asíncrona. Ejecute las consultas después de que el estado del índice cambie a RUNNING y la fase de sincronización de datos cambie a INCR.

El siguiente ejemplo utiliza una consulta de rango para recuperar filas Lastpoint en las que speed es mayor que 20.0. La consulta devuelve el número total de filas coincidentes y todas las columnas.

RangeQuery rangeQuery = new RangeQuery();
rangeQuery.setFieldName("speed");
rangeQuery.greaterThan(ColumnValue.fromDouble(20.0));

SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(rangeQuery);
searchQuery.setGetTotalCount(true);

SearchRequest request = new SearchRequest(
        "example_lastpoint_index",
        "example_search_index",
        searchQuery);
SearchRequest.ColumnsToGet columnsToGet =
        new SearchRequest.ColumnsToGet();
columnsToGet.setReturnAll(true);
request.setColumnsToGet(columnsToGet);

SearchResponse response = client.search(request);
System.out.println(response.getTotalCount());
response.getRows().forEach(System.out::println);

Parámetros

Solicitud de creación de índice de búsqueda

CreateSearchIndexRequest contiene los siguientes parámetros.

Nombre

Tipo

Descripción

tableName (obligatorio)

String

Nombre del índice Lastpoint. Un índice Lastpoint se utiliza como tabla de datos al crear un índice de búsqueda.

indexName (obligatorio)

String

Nombre del índice de búsqueda.

indexSchema (obligatorio)

IndexSchema

Esquema del índice de búsqueda, que incluye esquemas de campos, configuración del índice y ajustes de preordenamiento.

Campos del índice

Cada elemento en indexSchema.fieldSchemas[] es del tipo FieldSchema. Los siguientes parámetros configuran los campos del ejemplo.

Nombre

Tipo

Descripción

fieldName (obligatorio)

String

Nombre del campo en el índice Lastpoint.

fieldType (obligatorio)

FieldType

Tipo de campo del índice de búsqueda. El tipo debe coincidir con el tipo de valor en el índice Lastpoint.

index (opcional)

boolean

Especifica si se debe indexar el campo. Valor predeterminado: true.

isArray (opcional)

boolean

Especifica si el campo es una matriz. Valor predeterminado: false. Establezca este parámetro en true para _tags.

enableSortAndAgg (opcional)

boolean

Especifica si están habilitadas la ordenación y las agregaciones. Valor predeterminado: true. Los campos de texto no admiten ordenación ni agregaciones.

Solicitud de búsqueda

SearchRequest contiene los siguientes parámetros.

Nombre

Tipo

Descripción

tableName (obligatorio)

String

Nombre del índice Lastpoint.

indexName (obligatorio)

String

Nombre del índice de búsqueda en el índice Lastpoint.

searchQuery (obligatorio)

SearchQuery

Configuración de la consulta. El ejemplo establece query en RangeQuery y configura getTotalCount en true para devolver el número total de filas coincidentes. Para conocer los tipos de consulta y parámetros compatibles, consulte Data query.

columnsToGet (opcional)

SearchRequest.ColumnsToGet

Columnas que se devolverán. Si no se especifica este parámetro, solo se devuelven las columnas de clave primaria. El ejemplo utiliza returnAll para devolver todas las columnas.

Respuesta

SearchResponse contiene los siguientes campos específicos de la operación.

Campo

Tipo

Descripción

rows

List<Row>

Llame a getRows() para obtener las filas Lastpoint devueltas por la solicitud.

totalCount

long

Llame a getTotalCount() para obtener el número total de filas coincidentes. Este campo se devuelve solo si getTotalCount es true.

nextToken

byte[]

Llame a getNextToken() para obtener la posición inicial de la siguiente consulta. Un valor vacío indica que no hay más datos disponibles.

isAllSuccess

boolean

Llame a isAllSuccess() para comprobar si la consulta fue exitosa.