Mapeie dados do tipo Integer ou String de uma tabela de dados para o tipo Date em diversos formatos no índice de pesquisa dessa tabela. Em consultas de intervalo, o tipo Date oferece desempenho superior ao tipo String.
Precisão e intervalo
A precisão máxima dos dados Date é de nanossegundos. O intervalo de valores válidos para Date é ["1970-01-01 00:00:00.000000000", "2262-04-11 23:47:16.854775807"].
Formatos de data
Mapeie campos do tipo Integer ou String de uma tabela de dados para campos do tipo Date no índice de pesquisa associado e especifique o formato desses campos. A tabela a seguir descreve os formatos disponíveis.
|
Tipo de campo nas tabelas de dados |
Formato dos campos do tipo Date nos índices de pesquisa |
|
Integer |
Use um formato predefinido. Os seguintes formatos estão disponíveis:
|
|
String |
Há suporte para formatos personalizados. Os itens a seguir descrevem os formatos de Date mais comuns:
Nos formatos acima, yyyy representa o ano com quatro dígitos; MM, o mês; dd, o dia; HH, a hora no formato de 24 horas; mm, os minutos; ss, os segundos; SSS, a precisão dos segundos; e X, o deslocamento do fuso horário. Para mais informações, consulte Formatos de data personalizados. |
Formatos de data personalizados
|
Caractere |
Descrição |
Exemplo |
|
y |
O ano. |
|
|
M |
O mês. |
|
|
d |
O dia do mês. |
|
|
a |
O período do dia. No sistema de 12 horas, o dia divide-se em dois períodos: ante meridiem (AM) e post meridiem (PM). AM indica antes do meio-dia e PM indica após o meio-dia. |
|
|
K |
A hora no formato AM ou PM. Valores válidos: 0 a 11. |
|
|
H |
A hora do dia no sistema de 24 horas. Valores válidos: 0 a 23. |
|
|
m |
O minuto. |
|
|
s |
O segundo. |
|
|
S |
A precisão do segundo. A precisão pode conter de um a nove dígitos. |
|
|
X |
O deslocamento do fuso horário. |
|
|
x |
O deslocamento do fuso horário. |
|
|
' |
O qualificador personalizado. |
Use letras para definir qualificadores personalizados. Se utilizar uma string como qualificador, coloque-a entre aspas simples (''). Importante
Não é necessário colocar espaços e hifens (-) entre aspas simples. |
|
'' |
O caractere de escape. |
'' |
Validar um formato de Date
Antes de consultar dados com um formato de Date, valide o formato usando TermQuery ou DateTimeFormatter no JDK 8 ou superior.
Usar TermQuery
Crie um índice de pesquisa que inclua campos com o formato de Date especificado e use TermQuery para validar o formato. Se o sistema não retornar nenhum erro, o formato de Date será 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());
}
Usar DateTimeFormatter
Este método pode gerar erros ao validar o formato de Date em fusos horários específicos.
Verifique se você instalou o JDK 8 ou superior.
Chame o método DateTimeFormatter no JDK para validar o formato de Date. Se o sistema não retornar nenhum erro, o formato será 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");
}
Referências
Para usar dados do tipo Date, configure o campo Date ao criar um índice de pesquisa no console do Tablestore ou pelos SDKs do Tablestore. Para mais informações, consulte Criar um índice de pesquisa.
O Search Index oferece suporte a diversos tipos de consulta para dados multidimensionais, incluindo 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, e exists query.
Para exportar dados rapidamente sem considerar a ordenação do conjunto de resultados, use o recurso Parallel Scan.