Beherrschung des java-Dateierweiterungsfilters mit GroupDocs.Search

Die Verwaltung eines wachsenden Dokumentenbestands kann schnell überwältigend werden, besonders wenn Sie nur bestimmte Dateitypen indizieren müssen. Der java-Dateierweiterungsfilter ermöglicht es Ihnen, GroupDocs.Search genau mitzuteilen, welche Erweiterungen ein- oder ausgeschlossen werden sollen, und gibt Ihnen präzise Kontrolle über Ihre Indexierungspipeline. In diesem Leitfaden zeigen wir Ihnen, wie Sie GroupDocs.Search für Java einrichten und wie Sie die Dateierweiterungsfilterung mit logischen AND-, OR- und NOT‑Operatoren sowie mit Datumsbereichs‑ und Pfadfiltern kombinieren können.

Schnelle Antworten

  • Was ist der java-Dateierweiterungsfilter? Eine Konfiguration, die GroupDocs.Search mitteilt, welche Dateierweiterungen während der Indexierung ein- oder ausgeschlossen werden sollen.
  • Welche Bibliothek stellt diese Funktion bereit? GroupDocs.Search für Java.
  • Benötige ich eine Lizenz? Eine kostenlose Testversion funktioniert für die Evaluierung; für den Produktionseinsatz ist eine Voll-Lizenz erforderlich.
  • Kann ich Filter kombinieren? Ja – Sie können Erweiterungs-, Datums-, Größen- und Pfadfilter mit AND-, OR- und NOT-Logik verketten.
  • Ist es Maven‑kompatibel? Absolut – fügen Sie die GroupDocs.Search‑Abhängigkeit zu Ihrer pom.xml hinzu.

Was ist ein java-Dateierweiterungsfilter?

Ein java-Dateierweiterungsfilter ist ein Regelwerk, das die Erweiterung jeder Datei prüft, bevor sie an die Indexierungs-Engine übergeben wird. Durch Angabe von Erweiterungen wie .txt, .pdf oder .epub können Sie Dateien nach Erweiterung einbeziehen oder Dateien nach Erweiterung ausschließen, um Ihren Index fokussiert und Ihre Suchergebnisse relevant zu halten.

Warum Dateierweiterungsfilterung mit GroupDocs.Search verwenden?

  • Performance: Das Überspringen unerwünschter Dateien reduziert I/O und beschleunigt die Indexierung.
  • Speicherersparnis: Nur relevante Dokumente werden im Index gespeichert, wodurch der Festplattenverbrauch sinkt.
  • Compliance: Verhindert das versehentliche Indexieren vertraulicher oder nicht unterstützter Dateitypen.
  • Flexibilität: Kombinieren Sie es mit date range filter java-Funktionen, um Dateien, die in bestimmten Zeiträumen erstellt oder geändert wurden, gezielt zu filtern.

Voraussetzungen

Bevor wir beginnen, stellen Sie sicher, dass Sie Folgendes haben:

Erforderliche Bibliotheken und Abhängigkeiten

  • GroupDocs.Search für Java: Version 25.4 oder höher
  • Java Development Kit (JDK): Kompatible Version installiert

Umgebungseinrichtung

  • Integrierte Entwicklungsumgebung (IDE): IntelliJ IDEA, Eclipse oder jede Maven‑kompatible IDE.

Wissensvoraussetzungen

  • Grundlegende Java-Programmierung
  • Vertrautheit mit Datei‑I/O in Java
  • Verständnis von regulären Ausdrücken und Datum‑Zeit‑Verarbeitung

Einrichtung von GroupDocs.Search für Java

Um GroupDocs.Search zu verwenden, müssen Sie es als Abhängigkeit in Ihr Projekt einbinden.

Maven-Konfiguration

Fügen Sie die folgende Repository‑ und Abhängigkeitskonfiguration zu Ihrer pom.xml‑Datei hinzu:

<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>

Direkter Download

Alternativ können Sie die neueste Version direkt von GroupDocs.Search for Java releases herunterladen.

Lizenzbeschaffung

  1. Free Trial – Erkunden Sie die Funktionen kostenlos.
  2. Temporary License – Erhalten Sie die volle Funktionalität für einen begrenzten Zeitraum.
  3. Purchase – Erwerben Sie eine permanente Lizenz für den Produktionseinsatz.

Grundlegende Initialisierung und Einrichtung

Nachdem die Bibliothek hinzugefügt wurde, initialisieren Sie Ihre Indexierungsumgebung:

import com.groupdocs.search.*;

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

Implementierungsleitfaden

Im Folgenden gehen wir auf jeden Filtertyp ein, erklären warum er wichtig ist und liefern Schritt‑für‑Schritt‑Code, den Sie in Ihr Projekt übernehmen können.

Dateierweiterungsfilterung

Filtern Sie Dateien während der Indexierung nach ihren Erweiterungen. Das ist ideal, wenn Sie nur e‑Books (.fb2, .epub) und reine Textdateien (.txt) verarbeiten möchten.

Überblick

Verwenden Sie DocumentFilter.createFileExtension, um Erweiterungen auf eine Positivliste zu setzen.

Implementierungsschritte

  1. Create Filter:

    DocumentFilter filter = DocumentFilter.createFileExtension(".fb2", ".epub", ".txt");
    IndexSettings settings = new IndexSettings();
    settings.setDocumentFilter(filter);
    
  2. Initialize Index and Add Documents:

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

Logischer NOT‑Filter

Schließen Sie bestimmte Erweiterungen aus, wie Webseiten und PDFs, wenn sie für Ihr Suchszenario nicht benötigt werden.

Implementierungsschritte

  1. Create Exclusion Filter:

    DocumentFilter filterNot = DocumentFilter.createFileExtension(".htm", ".html", ".pdf");
    DocumentFilter invertedFilter = DocumentFilter.createNot(filterNot);
    
  2. Apply to Index Settings:

    IndexSettings settingsNot = new IndexSettings();
    settingsNot.setDocumentFilter(invertedFilter);
    
  3. Add Documents:

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

Logischer AND‑Filter

Kombinieren Sie mehrere Bedingungen – Erstellungsdatum, Erweiterung und Dateigröße – sodass nur Dateien, die alle Kriterien erfüllen, indexiert werden.

Überblick

DocumentFilter.createAnd kombiniert mehrere Filter zu einer einzigen Regel.

Implementierungsschritte

  1. Define Filters:

    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:

    DocumentFilter finalFilterAnd = DocumentFilter.createAnd(filter1, filter2, filter3);
    IndexSettings settingsAnd = new IndexSettings();
    settingsAnd.setDocumentFilter(finalFilterAnd);
    
  3. Index Documents:

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

Logischer OR‑Filter

Beziehen Sie Dateien ein, die irgendeine der angegebenen Bedingungen erfüllen – nützlich, wenn Sie sowohl kleine Textdateien als auch größere Nicht‑Text‑Dateien erfassen möchten.

Implementierungsschritte

  1. Define Filters:

    DocumentFilter txtFilter = DocumentFilter.createFileExtension(".txt");
    DocumentFilter notTxtFilter = DocumentFilter.createNot(txtFilter);
    
  2. Combine Filters with Logical Conditions:

    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:

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

Erstellungszeit‑Filter

Zielen Sie auf Dateien, die innerhalb eines bestimmten Zeitraums erstellt wurden – ein klassisches date range filter java‑Szenario.

Implementierungsschritte

  1. Define Date Range Filter:

    DocumentFilter filter3CTime = DocumentFilter.createCreationTimeRange(Utils.createDate(2017, 1, 1), Utils.createDate(2018, 6, 15));
    IndexSettings settingsCTime = new IndexSettings();
    settingsCTime.setDocumentFilter(filter3CTime);
    
  2. Index Documents:

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

Änderungszeit‑Filter

Schließen Sie Dateien aus, die nach einem bestimmten Stichtag geändert wurden.

Implementierungsschritte

  1. Define Filter:

    DocumentFilter filter2MTime = DocumentFilter.createModificationTimeUpperBound(Utils.createDate(2018, 6, 15));
    IndexSettings settingsMTime = new IndexSettings();
    settingsMTime.setDocumentFilter(filter2MTime);
    
  2. Index Documents:

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

Dateipfad‑Filterung

Beschränken Sie die Indexierung auf Dateien, die sich in bestimmten Ordnern befinden oder einem Muster entsprechen – ideal für include files by extension innerhalb einer spezifischen Verzeichnisstruktur.

Implementierungsschritte

  1. Define File Path Filter:

    DocumentFilter pathFilter = DocumentFilter.createPath("*.txt", "documents/");
    IndexSettings settingsPath = new IndexSettings();
    settingsPath.setDocumentFilter(pathFilter);
    
  2. Initialize Index and Add Documents:

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

Häufige Fallstricke & Tipps

  • Mischen Sie niemals absolute und relative Pfade in derselben Filterkonfiguration – das kann zu unerwarteten Ausschlüssen führen.
  • Setzen Sie die IndexSettings zurück, wenn Sie Filtersets wechseln; sonst können vorherige Filter bestehen bleiben.
  • Kombinieren Sie eine obere Längenbegrenzung mit einem Erweiterungsfilter für große Sammlungen, um den Speicherverbrauch gering zu halten.
  • Aktivieren Sie das Logging (LoggingOptions.setEnabled(true)), um zu sehen, warum eine Datei abgelehnt wurde.

Häufig gestellte Fragen

Q: Kann ich die Filterkriterien ändern, nachdem der Index erstellt wurde?
A: Ja. Erstellen Sie den Index mit einem neuen DocumentFilter neu oder verwenden Sie inkrementelles Indexieren mit aktualisierten Einstellungen.

Q: Funktioniert der java-Dateierweiterungsfilter bei komprimierten Archiven (z. B. ZIP)?
A: GroupDocs.Search kann unterstützte Archivformate indexieren, jedoch gilt der Erweiterungsfilter für das Archiv selbst, nicht für die darin enthaltenen Dateien. Verwenden Sie verschachtelte Filter für eine tiefere Kontrolle.

Q: Wie kann ich debuggen, warum eine bestimmte Datei ausgeschlossen wurde?
A: Aktivieren Sie das Logging der Bibliothek (LoggingOptions.setEnabled(true)) und prüfen Sie das Protokoll – es gibt an, welcher Filter jede Datei abgelehnt hat.

Q: Ist es möglich, den java-Dateierweiterungsfilter mit benutzerdefinierten Regex‑Filtern zu kombinieren?
A: Absolut. Wickeln Sie einen Regex‑Filter in DocumentFilter.createAnd() zusammen mit dem Erweiterungsfilter.

Q: Welche Auswirkungen auf die Performance hat das Hinzufügen vieler Filter?
A: Jeder Filter verursacht einen geringen Overhead während der Indexierung, aber die Reduzierung der indexierten Daten überwiegt in der Regel die Kosten. Testen Sie mit einer repräsentativen Stichprobe, um das optimale Gleichgewicht zu finden.


Zuletzt aktualisiert: 2026-02-21
Getestet mit: GroupDocs.Search 25.4 für Java
Autor: GroupDocs