maybe keep as “intervalo de datas”. Keep hyphen.
Ok.
Proceed.
Dominando o filtro de extensão de arquivo java com GroupDocs.Search
Gerenciar um repositório crescente de documentos pode rapidamente se tornar esmagador, especialmente quando você precisa indexar apenas certos tipos de arquivo. O filtro de extensão de arquivo java permite que você indique ao GroupDocs.Search exatamente quais extensões incluir ou excluir, proporcionando controle preciso sobre seu pipeline de indexação. Neste guia, percorreremos a configuração do GroupDocs.Search para Java e mostraremos como combinar o filtro de extensão de arquivo com operadores lógicos AND, OR e NOT, além de filtros de intervalo de datas e de caminho.
Respostas Rápidas
- O que é o filtro de extensão de arquivo java? Uma configuração que indica ao GroupDocs.Search quais extensões de arquivo incluir ou excluir durante a indexação.
- Qual biblioteca fornece esse recurso? GroupDocs.Search para Java.
- Preciso de uma licença? Um teste gratuito funciona para avaliação; uma licença completa é necessária para produção.
- Posso combinar filtros? Sim – você pode encadear filtros de extensão, data, tamanho e caminho com lógica AND, OR, NOT.
- É compatível com Maven? Absolutamente – adicione a dependência GroupDocs.Search ao seu
pom.xml.
O que é um filtro de extensão de arquivo java?
Um filtro de extensão de arquivo java é um conjunto de regras que avalia a extensão de cada arquivo antes de enviá‑lo ao mecanismo de indexação. Ao especificar extensões como .txt, .pdf ou .epub, você pode incluir arquivos por extensão ou excluir arquivos por extensão para manter seu índice focado e seus resultados de busca relevantes.
Por que usar filtragem por extensão de arquivo com GroupDocs.Search?
- Desempenho: Pular arquivos indesejados reduz I/O e acelera a indexação.
- Economia de armazenamento: Apenas documentos relevantes são armazenados no índice, diminuindo o uso de disco.
- Conformidade: Impede a indexação acidental de tipos de arquivo confidenciais ou não suportados.
- Flexibilidade: Combine com recursos de filtro de intervalo de datas java para direcionar arquivos criados ou modificados dentro de períodos específicos.
Pré‑requisitos
Antes de começar, certifique‑se de que você tem o seguinte:
Bibliotecas e Dependências Necessárias
- GroupDocs.Search para Java: Versão 25.4 ou posterior
- Java Development Kit (JDK): Versão compatível instalada
Configuração do Ambiente
- Ambiente de Desenvolvimento Integrado (IDE): IntelliJ IDEA, Eclipse ou qualquer IDE compatível com Maven.
Conhecimentos Necessários
- Programação Java básica
- Familiaridade com I/O de arquivos em Java
- Entendimento de expressões regulares e manipulação de data‑hora
Configurando GroupDocs.Search para Java
Para começar a usar o GroupDocs.Search, você precisa incluí‑lo como dependência em seu projeto.
Configuração Maven
Adicione o repositório e a configuração de dependência a seguir ao seu arquivo 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, baixe a versão mais recente diretamente em GroupDocs.Search para Java releases.
Aquisição de Licença
- Teste Gratuito – explore os recursos sem custo.
- Licença Temporária – obtenha funcionalidade completa por um período limitado.
- Compra – adquira uma licença permanente para uso em produção.
Inicialização e Configuração Básica
Depois que a biblioteca for adicionada, inicialize seu ambiente de indexação:
import com.groupdocs.search.*;
String indexFolder = "YOUR_OUTPUT_DIRECTORY";
Index index = new Index(indexFolder);
Guia de Implementação
A seguir, mergulhamos em cada tipo de filtro, explicando por que ele importa e fornecendo código passo a passo que você pode copiar para seu projeto.
Filtragem por Extensão de Arquivo
Filtre arquivos pelas suas extensões durante a indexação. Isso é perfeito quando você só deseja processar e‑books (.fb2, .epub) e arquivos de texto simples (.txt).
Visão Geral
Use DocumentFilter.createFileExtension para criar uma lista branca de extensões.
Etapas de Implementação
Criar o Filtro:
DocumentFilter filter = DocumentFilter.createFileExtension(".fb2", ".epub", ".txt"); IndexSettings settings = new IndexSettings(); settings.setDocumentFilter(filter);Inicializar o Índice e Adicionar Documentos:
Index index = new Index("YOUR_OUTPUT_DIRECTORY\\FileExtensionFilter", settings); index.add("YOUR_DOCUMENT_DIRECTORY");
Filtro Lógico NOT
Exclua extensões específicas, como páginas da web e PDFs, quando elas não forem necessárias para seu cenário de busca.
Etapas de Implementação
Criar Filtro de Exclusão:
DocumentFilter filterNot = DocumentFilter.createFileExtension(".htm", ".html", ".pdf"); DocumentFilter invertedFilter = DocumentFilter.createNot(filterNot);Aplicar às Configurações do Índice:
IndexSettings settingsNot = new IndexSettings(); settingsNot.setDocumentFilter(invertedFilter);Adicionar Documentos:
Index indexNot = new Index("YOUR_OUTPUT_DIRECTORY\\LogicalNotFilter", settingsNot); indexNot.add("YOUR_DOCUMENT_DIRECTORY");
Filtro Lógico AND
Combine várias condições—data de criação, extensão e tamanho do arquivo—de modo que apenas arquivos que atendam a todos os critérios sejam indexados.
Visão Geral
DocumentFilter.createAnd mescla múltiplos filtros em uma única regra.
Etapas de Implementação
Definir Filtros:
DocumentFilter filter1 = DocumentFilter.createCreationTimeRange(Utils.createDate(2015, 1, 1), Utils.createDate(2016, 1, 1)); DocumentFilter filter2 = DocumentFilter.createFileExtension(".txt"); DocumentFilter filter3 = DocumentFilter.createFileLengthUpperBound(8 * 1024 * 1024);Combinar Filtros:
DocumentFilter finalFilterAnd = DocumentFilter.createAnd(filter1, filter2, filter3); IndexSettings settingsAnd = new IndexSettings(); settingsAnd.setDocumentFilter(finalFilterAnd);Indexar Documentos:
Index indexAnd = new Index("YOUR_OUTPUT_DIRECTORY\\LogicalAndFilter", settingsAnd); indexAnd.add("YOUR_DOCUMENT_DIRECTORY");
Filtro Lógico OR
Inclua arquivos que satisfaçam qualquer das condições especificadas—útil quando você deseja capturar tanto pequenos arquivos de texto quanto arquivos não‑texto maiores.
Etapas de Implementação
Definir Filtros:
DocumentFilter txtFilter = DocumentFilter.createFileExtension(".txt"); DocumentFilter notTxtFilter = DocumentFilter.createNot(txtFilter);Combinar Filtros com Condições Lógicas:
DocumentFilter bound5Filter = DocumentFilter.createFileLengthUpperBound(5 * 1024 * 1024); DocumentFilter bound10Filter = DocumentFilter.createFileLengthUpperBound(10 * 1024 * 1024); DocumentFilter txtSizeFilter = DocumentFilter.createAnd(txtFilter, bound5Filter); DocumentFilter notTxtSizeFilter = DocumentFilter.createAnd(notTxtFilter, bound10Filter);Finalizar Filtro OR:
DocumentFilter finalFilterOr = DocumentFilter.createOr(txtSizeFilter, notTxtSizeFilter); IndexSettings settingsOr = new IndexSettings(); settingsOr.setDocumentFilter(finalFilterOr); Index indexOr = new Index("YOUR_OUTPUT_DIRECTORY\\LogicalOrFilter", settingsOr); indexOr.add("YOUR_DOCUMENT_DIRECTORY");
Filtros de Tempo de Criação
Direcione arquivos criados dentro de um período específico—um cenário clássico de filtro de intervalo de datas java.
Etapas de Implementação
Definir Filtro de Intervalo de Datas:
DocumentFilter filter3CTime = DocumentFilter.createCreationTimeRange(Utils.createDate(2017, 1, 1), Utils.createDate(2018, 6, 15)); IndexSettings settingsCTime = new IndexSettings(); settingsCTime.setDocumentFilter(filter3CTime);Indexar Documentos:
Index indexCTime = new Index("YOUR_OUTPUT_DIRECTORY\\CreationTimeFilters", settingsCTime); indexCTime.add("YOUR_DOCUMENT_DIRECTORY");
Filtros de Tempo de Modificação
Exclua arquivos que foram modificados após uma data de corte determinada.
Etapas de Implementação
Definir Filtro:
DocumentFilter filter2MTime = DocumentFilter.createModificationTimeUpperBound(Utils.createDate(2018, 6, 15)); IndexSettings settingsMTime = new IndexSettings(); settingsMTime.setDocumentFilter(filter2MTime);Indexar Documentos:
Index indexMTime = new Index("YOUR_OUTPUT_DIRECTORY\\ModificationTimeFilters", settingsMTime); indexMTime.add("YOUR_DOCUMENT_DIRECTORY");
Filtragem por Caminho de Arquivo
Restrinja a indexação a arquivos localizados em pastas específicas ou que correspondam a um padrão—ideal para incluir arquivos por extensão dentro de uma hierarquia de diretórios particular.
Etapas de Implementação
Definir Filtro de Caminho de Arquivo:
DocumentFilter pathFilter = DocumentFilter.createPath("*.txt", "documents/"); IndexSettings settingsPath = new IndexSettings(); settingsPath.setDocumentFilter(pathFilter);Inicializar o Índice e Adicionar Documentos:
Index indexPath = new Index("YOUR_OUTPUT_DIRECTORY\\FilePathFilter", settingsPath); indexPath.add("YOUR_DOCUMENT_DIRECTORY");
Armadilhas Comuns & Dicas
- Nunca misture caminhos absolutos e relativos na mesma configuração de filtro – isso pode levar a exclusões inesperadas.
- Redefina o
IndexSettingsao trocar conjuntos de filtros; caso contrário, filtros anteriores podem persistir. - Combine um limite superior de tamanho com um filtro de extensão para grandes coleções, a fim de manter o uso de memória baixo.
- Habilite o registro (
LoggingOptions.setEnabled(true)) para ver por que um arquivo foi rejeitado.
Perguntas Frequentes
Q: Posso alterar os critérios do filtro após o índice ser criado?
A: Sim. Reconstrua o índice com um novo DocumentFilter ou use indexação incremental com configurações atualizadas.
Q: O filtro de extensão de arquivo java funciona em arquivos compactados (por exemplo, ZIP)?
A: O GroupDocs.Search pode indexar formatos de arquivo de arquivo suportados, mas o filtro de extensão se aplica ao próprio arquivo compactado, não aos arquivos internos. Use filtros aninhados para controle mais profundo.
Q: Como depuro o motivo de um arquivo específico ter sido excluído?
A: Habilite o registro da biblioteca (LoggingOptions.setEnabled(true)) e inspecione o log – ele relata qual filtro rejeitou cada arquivo.
Q: É possível combinar o filtro de extensão de arquivo java com filtros regex personalizados?
A: Absolutamente. Envolva um filtro regex dentro de DocumentFilter.createAnd() ao lado do filtro de extensão.
Q: Qual o impacto de desempenho ao adicionar muitos filtros?
A: Cada filtro adiciona uma sobrecarga modesta durante a indexação, mas a redução de dados indexados geralmente supera o custo. Teste com uma amostra representativa para encontrar o equilíbrio ideal.
Última atualização: 2026-02-21
Testado com: GroupDocs.Search 25.4 para Java
Autor: GroupDocs