Formato de Data Personalizado Java | Busca por Intervalo de Datas com GroupDocs

Buscar documentos por data é uma necessidade frequente—seja ao construir um sistema de arquivamento, uma ferramenta de relatórios financeiros ou um portal de gerenciamento de conteúdo. Neste tutorial você aprenderá custom date format java usando GroupDocs.Search, abordando consultas por intervalo de datas, definições de padrões personalizados e dicas para optimize search performance. Ao final, você poderá permitir que os usuários recuperem registros que se enquadram em qualquer intervalo de datas, independentemente do formato que utilizam.

Respostas Rápidas

  • Qual é a classe principal para indexação? Index do pacote com.groupdocs.search.
  • Como definir um padrão de data personalizado? Use DateFormat com objetos DateFormatElement e um separador.
  • Posso pesquisar com uma consulta de texto? Sim, a sintaxe daterange(start ~~ end) funciona diretamente na string de consulta.
  • Quais coordenadas Maven são necessárias? com.groupdocs:groupdocs-search:25.4 (ou mais recente).
  • Preciso de licença para desenvolvimento? Uma avaliação gratuita ou licença temporária é suficiente para testes; uma licença comercial é necessária para produção.

O que é custom date format java?

Um custom date format java informa ao GroupDocs.Search como interpretar strings de data que não seguem o padrão ISO padrão (YYYY‑MM‑DD). Ao definir seu próprio padrão—como MM/dd/yyyy ou dd‑MM‑yyyy—você permite que o mecanismo reconheça datas incorporadas em documentos que utilizam formatos regionais ou legados.

Por que usar GroupDocs.Search para consultas de intervalo de datas?

  • Velocidade: Indexação incorporada torna as buscas O(log n).
  • Flexibilidade: Suporta criação de consultas baseadas em texto e em objetos.
  • Suporte a múltiplos formatos: Lida com PDFs, Word, Excel, texto simples e mais sem código adicional.

Como search documents by date com GroupDocs.Search

Abaixo você encontrará um guia passo a passo que o conduzirá na configuração da biblioteca, indexação de arquivos e execução de buscas simples e avançadas por intervalo de datas.

Pré-requisitos

  • Java 8 ou superior instalado.
  • Maven para gerenciamento de dependências.
  • Acesso a uma licença GroupDocs.Search (avaliação ou temporária funciona para desenvolvimento).

Configurando GroupDocs.Search para Java

Instalação usando Maven

Adicione o repositório e a dependência ao seu pom.xml:

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/search/java/</url>
   </repository>
</repositories>

<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-search</artifactId>
      <version>25.4</version>
   </dependency>
</dependencies>

Download Direto

Alternativamente, você pode baixar a versão mais recente diretamente de GroupDocs.Search for Java releases.

Inicialização e Configuração Básicas

Crie uma instância Index e adicione seus documentos:

import com.groupdocs.search.*;

String indexFolder = "YOUR_INDEX_DIRECTORY";
String documentsFolder = "YOUR_DOCUMENTS_DIRECTORY";

// Creating an index in the specified folder
Index index = new Index(indexFolder);

// Indexing documents from the specified folder
index.add(documentsFolder);

Recurso 1: Criando Consultas de Busca por Intervalo de Datas

Usando Consulta em Formato de Texto

A maneira mais simples é incorporar o intervalo de datas diretamente na string de consulta:

import com.groupdocs.search.*;
import com.groupdocs.search.results.*;

// Define directories (as previously shown)

Index index = new Index(indexFolder);
index.add(documentsFolder);

// Create a text-based query for the specified date range
String query1 = "daterange(2017-01-01 ~~ 2019-12-31)";
SearchResult result1 = index.search(query1);

Explicação: A sintaxe daterange espera datas no formato YYYY‑MM‑DD. Ela retorna todos os documentos cujas datas indexadas caem dentro do intervalo.

Usando Objeto de Consulta

Para controle programático e análise personalizada, construa um objeto SearchQuery:

import com.groupdocs.search.*;
import com.groupdocs.search.options.*;
import com.groupdocs.search.results.*;

// Define directories (as previously shown)

Index index = new Index(indexFolder);
index.add(documentsFolder);

// Create a date range query using the Query API
SearchQuery query2 = SearchQuery.createDateRangeQuery(Utils.createDate(2017, 1, 1), Utils.createDate(2019, 12, 31));
SearchResult result2 = index.search(query2);

Explicação: createDateRangeQuery permite fornecer objetos java.util.Date, oferecendo total flexibilidade em fusos horários e tratamento específico de localidade.

Recurso 2: Especificando Padrões custom date format java

Definindo Formatos de Data Personalizados

Defina um DateFormat que corresponda à representação de data do seu documento:

import com.groupdocs.search.*;
import com.groupdocs.search.options.*;
import com.groupdocs.search.results.*;

// Define directories (as previously shown)

Index index = new Index(indexFolder);
index.add(documentsFolder);

// Configure search options with custom date formats
SearchOptions options = new SearchOptions();
options.getDateFormats().clear(); // Remove default formats

DateFormatElement[] elements = new DateFormatElement[]{
    DateFormatElement.getMonthTwoDigits(),
    DateFormatElement.getDateSeparator(),
    DateFormatElement.getDayOfMonthTwoDigits(),
    DateFormatElement.getDateSeparator(),
    DateFormatElement.getYearFourDigits()
};

// Create a custom date format pattern 'MM/dd/yyyy'
DateFormat dateFormat = new DateFormat(elements, "/");
options.getDateFormats().addItem(dateFormat);

String query = "daterange(01/01/2017 ~~ 12/31/2019)";
SearchResult result = index.search(query, options);

Explicação: Ao limpar os formatos padrão e adicionar um DateFormat que usa / como separador, o mecanismo agora entende datas escritas como MM/dd/yyyy. Isso é essencial para search documents by date em regiões que preferem a notação mês‑primeiro.

Dicas para optimize search performance

  • Index Incrementally: Adicione novos arquivos ao índice existente em vez de reconstruir do zero.
  • Prune Stale Data: Remova periodicamente documentos que não são mais necessários.
  • Adjust Memory Settings: Aumente o heap da JVM (-Xmx) ao trabalhar com índices grandes.

Problemas Comuns e Soluções

  • Date Parsing Errors: Verifique se as strings de data do documento correspondem exatamente ao padrão personalizado que você definiu.
  • Missing Results: Garanta que os campos indexados contenham metadados de data; caso contrário, o mecanismo não pode corresponder a consultas de data.
  • Index Access Exceptions: Confirme que o caminho indexFolder é gravável e não está bloqueado por outro processo.

Aplicações Práticas

  1. Archival Systems – Recupere registros de um período histórico específico.
  2. Content Management – Suporte a formatos de data regionais como dd/MM/yyyy para audiências europeias.
  3. Financial Software – Filtre transações por trimestre fiscal ou ano rapidamente.

Conclusão

Agora você tem uma caixa de ferramentas completa de custom date format java para construir buscas poderosas por intervalo de datas com GroupDocs.Search. Implemente esses padrões, ajuste o desempenho e sua aplicação entregará resultados rápidos e precisos para qualquer consulta temporal.

Perguntas Frequentes

Q: Qual é a diferença entre consultas em formato de texto e consultas baseadas em objeto?
A: O formato de texto é rápido e fácil, mas limitado ao formato ISO padrão; consultas baseadas em objeto permitem fornecer objetos Date e formatos personalizados para maior flexibilidade.

Q: Posso buscar múltiplos intervalos de datas em uma única consulta?
A: Sim, combine cláusulas daterange com operadores lógicos como AND ou OR para construir consultas complexas.

Q: Formatos de data personalizados vão desacelerar a busca?
A: Há uma pequena sobrecarga de análise adicional, mas o impacto é insignificante para cargas de trabalho típicas e é compensado pelos ganhos de precisão.

Q: O GroupDocs.Search é adequado para implantações em larga escala?
A: Absolutamente. Com estratégias adequadas de indexação e ajuste da JVM, ele escala para milhões de documentos.

Q: Onde posso encontrar mais exemplos em Java?
A: Explore o GroupDocs GitHub repository para obter amostras adicionais e implementações de casos de uso.


Resources


Last Updated: 2025-12-18
Tested With: GroupDocs.Search Java 25.4
Author: GroupDocs