Filtrer les extensions de fichiers java avec GroupDocs.Search

Dans ce tutoriel complet, vous apprendrez comment filtrer les extensions de fichiers java lors de l’indexation de documents avec GroupDocs.Search. À la fin du guide, vous pourrez inclure uniquement les types de fichiers dont vous avez besoin, exclure les formats indésirables, et combiner ces règles avec des filtres de plage de dates et de chemin en utilisant les opérateurs logiques AND, OR et NOT. Cette approche garde votre index léger, accélère les recherches et vous aide à rester conforme aux politiques de gestion des données.

Réponses rapides

  • Quel est le filtre d’extension de fichier java ? C’est une règle qui indique à GroupDocs.Search quelles extensions de fichiers inclure ou exclure lors de l’indexation.
  • Quelle bibliothèque fournit cette fonctionnalité ? GroupDocs.Search for Java.
  • Ai-je besoin d’une licence ? Un essai gratuit fonctionne pour l’évaluation ; une licence complète est requise pour la production.
  • Puis-je combiner les filtres ? Oui – vous pouvez chaîner les filtres d’extension, de date, de taille et de chemin avec la logique AND, OR, NOT.
  • Est-il compatible Maven ? Absolument – ajoutez la dépendance GroupDocs.Search à votre pom.xml.

Qu’est-ce qu’un filtre d’extension de fichier java ?

Un java file extension filter est un ensemble de règles qui évalue l’extension de chaque fichier avant qu’il ne soit envoyé au moteur d’indexation. En spécifiant des extensions comme .txt, .pdf ou .epub, vous pouvez inclure des fichiers par extension ou exclure des fichiers par extension afin de garder votre index ciblé et vos résultats de recherche pertinents.

Pourquoi utiliser le filtrage d’extensions de fichiers avec GroupDocs.Search ?

Le filtrage d’extensions de fichiers améliore l’efficacité de l’indexation en excluant les formats non pertinents, réduit les besoins de stockage et aide à respecter les règles de conformité en empêchant le contenu indésirable d’entrer dans l’index. Il permet également des réponses aux requêtes plus rapides car le moteur de recherche traite un jeu de données plus petit et plus pertinent.

  • Performance : Ignorer les fichiers indésirables réduit les E/S et accélère l’indexation jusqu’à 40 % sur de grands dépôts.
  • Économies de stockage : Seuls les documents pertinents sont stockés dans l’index, réduisant l’utilisation du disque en moyenne de 30 %.
  • Conformité : Empêche l’indexation accidentelle de types de fichiers confidentiels ou non pris en charge.
  • Flexibilité : Combinez avec les fonctionnalités date range filter java pour cibler les fichiers créés ou modifiés pendant des périodes spécifiques.

Prérequis

Avant de commencer, assurez-vous de disposer de ce qui suit :

Bibliothèques et dépendances requises

  • GroupDocs.Search for Java – version 25.4 ou ultérieure (prend en charge plus de 60 formats d’entrée).
  • Java Development Kit (JDK) – toute version compatible (8 ou plus récente).

Configuration de l’environnement

  • Environnement de développement intégré (IDE) : IntelliJ IDEA, Eclipse ou tout IDE compatible Maven.

Prérequis de connaissances

  • Programmation Java de base.
  • Familiarité avec les entrées/sorties de fichiers en Java.
  • Compréhension des expressions régulières et de la gestion des dates et heures.

Configuration de GroupDocs.Search pour Java

Pour commencer à utiliser GroupDocs.Search, vous devez l’inclure comme dépendance dans votre projet.

Configuration Maven

Ajoutez la configuration du dépôt et de la dépendance suivante à votre fichier 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>

Téléchargement direct

Alternatively, download the latest version directly from GroupDocs.Search for Java releases.

Acquisition de licence

  1. Free trial – explorez les fonctionnalités sans frais.
  2. Temporary license – obtenez toutes les fonctionnalités pendant une période limitée.
  3. Purchase – obtenez une licence permanente pour une utilisation en production.

Initialisation et configuration de base

Une fois la bibliothèque ajoutée, initialisez votre environnement d’indexation. La classe IndexSettings contient toutes les options de configuration, y compris les filtres.

import com.groupdocs.search.*;

String indexFolder = "YOUR_OUTPUT_DIRECTORY";
Index index = new Index(indexFolder);

Guide d’implémentation

Ci-dessous, nous explorons chaque type de filtre, en expliquant pourquoi c’est important et en fournissant des instructions étape par étape que vous pouvez copier dans votre projet.

Filtrage par extension de fichier

Filtrez les fichiers par leurs extensions lors de l’indexation. C’est parfait lorsque vous ne souhaitez traiter que des e‑books (.fb2, .epub) et des fichiers texte brut (.txt).

Vue d’ensemble

DocumentFilter.createFileExtension crée une liste blanche d’extensions.

Étapes d’implémentation

  1. Create filter – définissez les extensions que vous souhaitez conserver.

    DocumentFilter filter = DocumentFilter.createFileExtension(".fb2", ".epub", ".txt");
    IndexSettings settings = new IndexSettings();
    settings.setDocumentFilter(filter);
    
  2. Initialize index and add documents – appliquez le filtre lors de la construction de IndexSettings.

    Index index = new Index("YOUR_OUTPUT_DIRECTORY\\FileExtensionFilter", settings);
    index.add("YOUR_DOCUMENT_DIRECTORY");
    

Filtre logique NOT

Excluez des extensions spécifiques, comme les pages web et les PDF, lorsqu’elles ne sont pas nécessaires à votre scénario de recherche.

Étapes d’implémentation

  1. Create exclusion filter – spécifiez les extensions à rejeter.

    DocumentFilter filterNot = DocumentFilter.createFileExtension(".htm", ".html", ".pdf");
    DocumentFilter invertedFilter = DocumentFilter.createNot(filterNot);
    
  2. Apply to index settings – combinez le filtre NOT avec d’autres règles.

    IndexSettings settingsNot = new IndexSettings();
    settingsNot.setDocumentFilter(invertedFilter);
    
  3. Add documents – seuls les fichiers qui passent le filtre combiné sont indexés.

    Index indexNot = new Index("YOUR_OUTPUT_DIRECTORY\\LogicalNotFilter", settingsNot);
    indexNot.add("YOUR_DOCUMENT_DIRECTORY");
    

Filtre logique AND

Combinez plusieurs conditions — date de création, extension et taille de fichier — afin que seuls les fichiers qui répondent à tous les critères soient indexés.

Vue d’ensemble

DocumentFilter.createAnd fusionne plusieurs filtres en une seule règle.

Étapes d’implémentation

  1. Define filters – créez des filtres individuels pour chaque condition.

    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);
    
  2. Combine filters – utilisez l’opérateur AND pour exiger toutes les conditions.

    DocumentFilter finalFilterAnd = DocumentFilter.createAnd(filter1, filter2, filter3);
    IndexSettings settingsAnd = new IndexSettings();
    settingsAnd.setDocumentFilter(finalFilterAnd);
    
  3. Index documents – transmettez le filtre combiné au pipeline d’indexation.

    Index indexAnd = new Index("YOUR_OUTPUT_DIRECTORY\\LogicalAndFilter", settingsAnd);
    indexAnd.add("YOUR_DOCUMENT_DIRECTORY");
    

Filtre logique OR

Incluez les fichiers qui satisfont l’une des conditions spécifiées — utile lorsque vous souhaitez capturer à la fois de petits fichiers texte et des fichiers non‑texte plus volumineux.

Étapes d’implémentation

  1. Define filters – créez des filtres séparés pour chaque condition alternative.

    DocumentFilter txtFilter = DocumentFilter.createFileExtension(".txt");
    DocumentFilter notTxtFilter = DocumentFilter.createNot(txtFilter);
    
  2. Combine filters with logical conditions – utilisez l’opérateur OR.

    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);
    
  3. Finalize OR filter – attachez le filtre combiné à la configuration de l’index.

    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");
    

Filtres de date de création

Ciblez les fichiers créés pendant une période spécifique — un scénario classique de date range filter java.

Étapes d’implémentation

  1. Define date‑range filter – spécifiez les dates de début et de fin.

    DocumentFilter filter3CTime = DocumentFilter.createCreationTimeRange(Utils.createDate(2017, 1, 1), Utils.createDate(2018, 6, 15));
    IndexSettings settingsCTime = new IndexSettings();
    settingsCTime.setDocumentFilter(filter3CTime);
    
  2. Index documents – seuls les fichiers dont les horodatages de création se situent dans la plage sont indexés.

    Index indexCTime = new Index("YOUR_OUTPUT_DIRECTORY\\CreationTimeFilters", settingsCTime);
    indexCTime.add("YOUR_DOCUMENT_DIRECTORY");
    

Filtres de date de modification

Excluez les fichiers qui ont été modifiés après une certaine date limite.

Étapes d’implémentation

  1. Define filter – définissez le horodatage maximal de modification.

    DocumentFilter filter2MTime = DocumentFilter.createModificationTimeUpperBound(Utils.createDate(2018, 6, 15));
    IndexSettings settingsMTime = new IndexSettings();
    settingsMTime.setDocumentFilter(filter2MTime);
    
  2. Index documents – les fichiers plus récents que la date limite sont ignorés.

    Index indexMTime = new Index("YOUR_OUTPUT_DIRECTORY\\ModificationTimeFilters", settingsMTime);
    indexMTime.add("YOUR_DOCUMENT_DIRECTORY");
    

Filtrage par chemin de fichier

Restreignez l’indexation aux fichiers situés dans des dossiers particuliers ou correspondant à un motif — idéal pour include files by extension au sein d’une hiérarchie de répertoires spécifique.

Étapes d’implémentation

  1. Define file‑path filter – utilisez des motifs glob ou regex pour correspondre aux répertoires.

    DocumentFilter pathFilter = DocumentFilter.createPath("*.txt", "documents/");
    IndexSettings settingsPath = new IndexSettings();
    settingsPath.setDocumentFilter(pathFilter);
    
  2. Initialize index and add documents – appliquez le filtre de chemin en même temps que les autres règles.

    Index indexPath = new Index("YOUR_OUTPUT_DIRECTORY\\FilePathFilter", settingsPath);
    indexPath.add("YOUR_DOCUMENT_DIRECTORY");
    

Pièges courants & conseils

  • Ne jamais mélanger les chemins absolus et relatifs dans la même configuration de filtre – cela peut entraîner des exclusions inattendues.
  • Réinitialisez le IndexSettings lors du changement d’ensemble de filtres ; sinon les filtres précédents peuvent persister.
  • Combinez une limite supérieure de longueur avec un filtre d’extension pour les grandes collections afin de maintenir une faible consommation de mémoire.
  • LoggingOptions contrôle la configuration de journalisation pour GroupDocs.Search.
  • Activez la journalisation (LoggingOptions.setEnabled(true)) pour voir pourquoi un fichier a été rejeté.

Questions fréquemment posées

Q : Puis-je modifier les critères de filtre après la création de l’index ?
A : Oui. Reconstruisez l’index avec un nouveau DocumentFilter ou utilisez l’indexation incrémentielle avec des paramètres mis à jour.

Q : Le filtre d’extension de fichier java fonctionne-t-il sur les archives compressées (par ex., ZIP) ?
A : GroupDocs.Search peut indexer les formats d’archives pris en charge, mais le filtre d’extension s’applique à l’archive elle‑même, pas aux fichiers internes. Utilisez des filtres imbriqués pour un contrôle plus fin.

Q : Comment déboguer pourquoi un fichier particulier a été exclu ?
A : Activez la journalisation de la bibliothèque (LoggingOptions.setEnabled(true)) et examinez le journal – il indique quel filtre a rejeté chaque fichier.

Q : Est-il possible de combiner le filtre d’extension de fichier java avec des filtres regex personnalisés ?
A : Absolument. Enveloppez un filtre regex dans DocumentFilter.createAnd() en même temps que le filtre d’extension.

Q : Quel impact sur les performances l’ajout de nombreux filtres a-t-il ?
A : Chaque filtre ajoute une surcharge modeste pendant l’indexation, mais la réduction des données indexées compense généralement le coût. Testez avec un échantillon représentatif pour trouver l’équilibre optimal.


Dernière mise à jour : 2026-09-06
Testé avec : GroupDocs.Search 25.4 for Java
Auteur : GroupDocs

Tutoriels associés