Todos los productos
Search
Centro de documentos

Tablestore:Modificación dinámica del esquema de un índice de búsqueda

Última actualización: Sep 03, 2026

El SDK de Tablestore para Java permite crear un índice canary a partir de un índice de búsqueda de origen para agregar o eliminar campos, o bien cambiar tipos de campo, campos de enrutamiento y configuraciones de preordenamiento, sin interrumpir las operaciones de lectura ni escritura.

Requisitos previos

Ha instalado Tablestore SDK for Java e inicializado el cliente.

Descripción

Llame a createSearchIndex para crear un índice canary que contenga el nuevo esquema completo a partir de un índice de origen. Este proceso no interrumpe las lecturas ni escrituras de la tabla, y el código de consulta que utiliza el nombre del índice de origen no requiere cambios. El proceso consta de los pasos a continuación:

public CreateSearchIndexResponse createSearchIndex(CreateSearchIndexRequest request)
  1. Cree un índice canary a partir del índice de origen y envíe el nuevo esquema completo.

  2. Espere hasta que se sincronicen los datos existentes e incrementales, y el índice canary se actualice respecto al índice de origen.

  3. De forma opcional, distribuya el tráfico de consultas entre los índices de origen y canary para realizar pruebas A/B.

  4. Una vez comprobados los resultados de las consultas, intercambie los índices para que el nombre del índice de origen apunte al nuevo esquema.

  5. Supervise el índice durante un periodo de estabilización después del intercambio. Posteriormente, elimine el índice canary que apunta al esquema anterior.

Importante
  • Un índice canary es un índice temporal que se utiliza durante el proceso de modificación del esquema; su nombre debe terminar con _reindex. Las asignaciones del índice y los pesos de tráfico cambian durante el proceso. No consulte datos mediante el nombre del índice canary.

  • Es posible reconstruir hasta cinco índices simultáneamente. Antes de iniciar otro lote, espere a que los índices canary del lote actual se sincronizen con sus índices de origen o completen el intercambio de índices.

Crear un índice canary

En el ejemplo a continuación se cambia col1 de Long a Keyword, se elimina col2, se agrega el campo Long col3 y se configura id como campo de enrutamiento.

String tableName = "example_table";
String sourceIndexName = "example_index";
String reindexName = "example_index_reindex";
IndexSchema indexSchema = new IndexSchema();
indexSchema.setFieldSchemas(Arrays.asList(
        new FieldSchema("id", FieldType.KEYWORD),
        new FieldSchema("col1", FieldType.KEYWORD),
        new FieldSchema("col3", FieldType.LONG)));

IndexSetting indexSetting = new IndexSetting();
indexSetting.setRoutingFields(Arrays.asList("id"));
indexSchema.setIndexSetting(indexSetting);

CreateSearchIndexRequest request = new CreateSearchIndexRequest();
request.setTableName(tableName);
request.setIndexName(reindexName);
request.setSourceIndexName(sourceIndexName);
request.setIndexSchema(indexSchema);
client.createSearchIndex(request);

Después de que la solicitud se complete correctamente, query the canary index information. Compruebe que su estado sea RUNNING, que brotherIndexName contenga el nombre del índice de origen y que el nuevo esquema sea correcto. El estado RUNNING indica que se creó el índice canary, pero no significa que este ya se haya sincronizado con el índice de origen.

Validar e intercambiar los índices

Importante

Realice pruebas A/B e intercambie los índices solo después de que la consola indique que es seguro cambiar el índice canary. Tras el intercambio, el nombre del índice de origen apuntará al nuevo esquema y el nombre del índice canary apuntará al esquema anterior. Compruebe el índice y obsérvelo durante un periodo de estabilización antes de eliminar el índice canary.

Utilice la consola de Tablestore para comprobar el progreso de la sincronización, configurar los pesos de tráfico, intercambiar los índices y eliminar el índice canary. Para obtener instrucciones, consulte Dynamically modify a search index schema.

Parámetros

CreateSearchIndexRequest contiene los parámetros a continuación:

Nombre

Tipo

Descripción

tableName (obligatorio)

String

Nombre de la tabla.

indexName (obligatorio)

String

Nombre del índice canary. Debe terminar con _reindex.

indexSchema (obligatorio)

IndexSchema

Nuevo esquema completo del índice canary.

sourceIndexName (obligatorio)

String

Índice de origen en el que se basa la reconstrucción. Tablestore crea el índice canary a partir de este índice y sincroniza los datos existentes e incrementales de la tabla hacia el índice canary.

timeToLive (opcional)

Integer

TTL de los datos del índice canary en segundos. Para especificar el TTL en días, llame a setTimeToLiveInDays. Para consultar valores válidos y restricciones, consulte Configure the TTL of a search index.

Esquema del índice

indexSchema es de tipo IndexSchema y contiene los parámetros a continuación.

Nombre

Tipo

Descripción

fieldSchemas (obligatorio)

List<FieldSchema>

Lista completa de campos después del cambio. Agregue, elimine o modifique campos en esta lista para alterar los campos del índice.

indexSetting (opcional)

IndexSetting

Configuración del índice. Utilice routingFields para modificar los campos de enrutamiento.

indexSort (opcional)

Sort

Configuración de preordenamiento del índice.

Para consultar las estructuras completas de parámetros y las restricciones de los campos del índice, la configuración del índice y la configuración de preordenamiento, consulte Create a search index.