Los datos de tipo Integer o String de una tabla se pueden mapear a datos de tipo Date en diversos formatos dentro de un search index creado para dicha tabla. Cuando se utiliza el search index para ejecutar una consulta por rango, el tipo Date ofrece un rendimiento superior al tipo String.
Precisión y rango
La precisión máxima de los datos de tipo Date es de nanosegundos. El rango de valores de estos datos es ["1970-01-01 00:00:00.000000000", "2262-04-11 23:47:16.854775807"].
Formatos de fecha
Los campos de tipo Integer o String de una tabla se pueden mapear a campos de tipo Date en un search index creado para dicha tabla. Además, es posible especificar el formato de estos campos. A continuación se describen los formatos disponibles.
Tipo de campo en las tablas de datos | Formato de los campos de tipo Date en los search indexes |
Integer | Se puede utilizar un formato predefinido. Están disponibles los siguientes:
|
String | Este tipo admite formatos personalizados. Los elementos siguientes describen los formatos de Date más comunes:
En los formatos anteriores, yyyy representa el año con cuatro dígitos, MM el mes, dd el día, HH la hora en formato de 24 horas, mm los minutos, ss los segundos, SSS la precisión de los segundos y X el desplazamiento de la zona horaria. Para obtener más información, consulte Custom date formats. |
Formatos de fecha personalizados
Carácter | Descripción | Ejemplo |
y | El año. |
|
M | El mes. |
|
d | El día del mes. |
|
a | El periodo del día. En el sistema de 12 horas, el día se divide en dos periodos: ante meridiem (AM) y post meridiem (PM). AM indica antes del mediodía y PM después del mediodía. |
|
K | La hora en formato AM o PM. Valores válidos: de 0 a 11. |
|
H | La hora del día en el sistema de 24 horas. Valores válidos: de 0 a 23. |
|
m | Los minutos. |
|
s | Los segundos. |
|
S | La precisión de los segundos. Puede contener de uno a nueve dígitos. |
|
X | El desplazamiento de la zona horaria. |
|
x | El desplazamiento de la zona horaria. |
|
' | El calificador personalizado. | Las letras permiten definir calificadores personalizados. Si utiliza una cadena como calificador, esta debe encerrarse entre comillas simples (''). Importante No es necesario incluir los espacios ni los guiones (-) entre comillas simples. |
'' | El carácter de escape. | '' |
Compruebe un formato de Date
Antes de consultar datos con un formato de Date, se recomienda usar TermQuery o DateTimeFormatter en JDK 8 o versiones posteriores para comprobar si el formato es válido.
Uso de TermQuery
Cree un search index que incluya campos con el formato de Date especificado y utilice TermQuery para comprobar dicho formato. Si no se devuelve ningún error, el formato de Date es válido.
public void testDateFormat(SyncClient client, String tableName, String indexName) {
// Create a search index.
CreateSearchIndexRequest request = new CreateSearchIndexRequest();
request.setTableName(tableName);
request.setIndexName(indexName);
IndexSchema indexSchema = new IndexSchema();
indexSchema.setFieldSchemas(Arrays.asList(
new FieldSchema("col_date", FieldType.DATE)
.setIndex(true)
.setEnableSortAndAgg(true)
.setDateFormats(Arrays.asList("yyyy-MM-dd HH:mm:ss.SSS"))
));
request.setIndexSchema(indexSchema);
client.createSearchIndex(request);
// Check the Date format. If no error is returned, the Date format is valid.
client.search(SearchRequest.newBuilder()
.tableName(tableName)
.indexName(indexName)
.searchQuery(SearchQuery
.newBuilder()
.query(QueryBuilders.term("col_date", "2022-12-12 12:10:03.123")).build())
.build());
}
Uso de DateTimeFormatter
Si utiliza este método para comprobar el formato de Date en ciertas zonas horarias, podrían producirse errores.
Compruebe que instaló JDK 8 o una versión posterior.
Llame al método DateTimeFormatter de JDK para comprobar el formato de Date. Si no se devuelve ningún error, el formato es válido.
import java.time.format.DateTimeFormatter;
public void testFormatByJdk8() {
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS").parse("2022-12-12 12:10:03.123");
}
Referencias
Para trabajar con datos de tipo Date, configure el campo correspondiente cuando cree un search index desde la consola de Tablestore o mediante los SDK de Tablestore. Para obtener más información, consulte Create a search index.
Search Index admite diversos tipos de consultas para analizar datos multidimensionales, entre ellos: term query, terms query, match all query, match query, phrase match query, range query, prefix query, suffix query, wildcard query, token-based wildcard query, boolean query, geo query, nested query, vector search, y exists query.
Si necesita analizar los datos de una tabla, utilice la función de agregación de la operación Search o ejecute instrucciones SQL. Por ejemplo, puede obtener los valores mínimo y máximo, la suma y el número total de filas. Para obtener más información, consulte Aggregation y SQL query.
Para exportar datos rápidamente sin importar el orden del conjunto de resultados, utilice la función Parallel Scan.