Beheersen van de java‑bestandsextensiefilter met GroupDocs.Search
Het beheren van een groeiende documentrepository kan snel overweldigend worden, vooral wanneer je alleen bepaalde bestandstypen moet indexeren. De java‑bestandsextensiefilter stelt je in staat GroupDocs.Search precies te vertellen welke extensies moeten worden opgenomen of uitgesloten, waardoor je nauwkeurige controle krijgt over je indexerings‑pipeline. In deze gids lopen we stap voor stap door het instellen van GroupDocs.Search voor Java en laten we zien hoe je bestandsextensie‑filtering combineert met logische AND-, OR- en NOT‑operatoren, evenals datum‑range‑ en pad‑filters.
Snelle antwoorden
- Wat is de java‑bestandsextensiefilter? Een configuratie die GroupDocs.Search vertelt welke bestandsextensies moeten worden opgenomen of uitgesloten tijdens het indexeren.
- Welke bibliotheek biedt deze functie? GroupDocs.Search voor Java.
- Heb ik een licentie nodig? Een gratis proefversie werkt voor evaluatie; een volledige licentie is vereist voor productie.
- Kan ik filters combineren? Ja – je kunt extensie‑, datum‑, grootte‑ en pad‑filters combineren met AND, OR, NOT‑logica.
- Is het Maven‑compatibel? Absoluut – voeg de GroupDocs.Search‑dependency toe aan je
pom.xml.
Wat is een java‑bestandsextensiefilter?
Een java‑bestandsextensiefilter is een reeks regels die de extensie van elk bestand evalueert voordat het naar de indexeringsengine wordt gestuurd. Door extensies zoals .txt, .pdf of .epub op te geven, kun je bestanden opnemen op basis van extensie of bestanden uitsluiten op basis van extensie om je index gefocust en je zoekresultaten relevant te houden.
Waarom bestandsextensie‑filtering gebruiken met GroupDocs.Search?
- Prestaties: Het overslaan van ongewenste bestanden vermindert I/O en versnelt het indexeren.
- Opslagbesparing: Alleen relevante documenten worden opgeslagen in de index, waardoor het schijfgebruik daalt.
- Naleving: Voorkom per ongeluk indexeren van vertrouwelijke of niet‑ondersteunde bestandstypen.
- Flexibiliteit: Combineer met date range filter java‑functies om bestanden te targeten die binnen specifieke periodes zijn aangemaakt of gewijzigd.
Voorvereisten
Voordat we beginnen, zorg ervoor dat je het volgende hebt:
Vereiste bibliotheken en afhankelijkheden
- GroupDocs.Search voor Java: Versie 25.4 of later
- Java Development Kit (JDK): Compatibele versie geïnstalleerd
Omgevingsconfiguratie
- Integrated Development Environment (IDE): IntelliJ IDEA, Eclipse of een andere Maven‑compatibele IDE.
Kennisvoorvereisten
- Basis Java‑programmeren
- Vertrouwdheid met bestand‑I/O in Java
- Begrip van reguliere expressies en datum‑tijd handling
GroupDocs.Search voor Java instellen
Om GroupDocs.Search te gebruiken, moet je het als afhankelijkheid in je project opnemen.
Maven‑configuratie
Voeg de volgende repository‑ en afhankelijkheidsconfiguratie toe aan je pom.xml‑bestand:
<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>
Directe download
Download anders de nieuwste versie rechtstreeks van GroupDocs.Search for Java releases.
Licentie‑acquisitie
- Gratis proefversie – verken de functies zonder kosten.
- Tijdelijke licentie – verkrijg volledige functionaliteit voor een beperkte periode.
- Aankoop – verkrijg een permanente licentie voor productiegebruik.
Basisinitialisatie en -instelling
Zodra de bibliotheek is toegevoegd, initialiseert u uw indexeringsomgeving:
import com.groupdocs.search.*;
String indexFolder = "YOUR_OUTPUT_DIRECTORY";
Index index = new Index(indexFolder);
Implementatie‑gids
Hieronder duiken we in elk filtertype, leggen we waarom het belangrijk is uit en bieden we stap‑voor‑stap code die je kunt kopiëren naar je project.
Bestandsextensie‑filtering
Filter bestanden op hun extensies tijdens het indexeren. Dit is perfect wanneer je alleen e‑books (.fb2, .epub) en platte tekstbestanden (.txt) wilt verwerken.
Overzicht
Gebruik DocumentFilter.createFileExtension om extensies op een whitelist te plaatsen.
Implementatiestappen
Filter maken:
DocumentFilter filter = DocumentFilter.createFileExtension(".fb2", ".epub", ".txt"); IndexSettings settings = new IndexSettings(); settings.setDocumentFilter(filter);Index initialiseren en documenten toevoegen:
Index index = new Index("YOUR_OUTPUT_DIRECTORY\\FileExtensionFilter", settings); index.add("YOUR_DOCUMENT_DIRECTORY");
Logische NOT‑filter
Sluit specifieke extensies uit, zoals webpagina’s en PDF’s, wanneer ze niet nodig zijn voor je zoekscenario.
Implementatiestappen
Uitsluitingsfilter maken:
DocumentFilter filterNot = DocumentFilter.createFileExtension(".htm", ".html", ".pdf"); DocumentFilter invertedFilter = DocumentFilter.createNot(filterNot);Toepassen op IndexSettings:
IndexSettings settingsNot = new IndexSettings(); settingsNot.setDocumentFilter(invertedFilter);Documenten toevoegen:
Index indexNot = new Index("YOUR_OUTPUT_DIRECTORY\\LogicalNotFilter", settingsNot); indexNot.add("YOUR_DOCUMENT_DIRECTORY");
Logische AND‑filter
Combineer meerdere voorwaarden—creatiedatum, extensie en bestandsgrootte—zodat alleen bestanden die aan alle criteria voldoen worden geïndexeerd.
Overzicht
DocumentFilter.createAnd voegt meerdere filters samen tot één regel.
Implementatiestappen
Filters definiëren:
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);Filters combineren:
DocumentFilter finalFilterAnd = DocumentFilter.createAnd(filter1, filter2, filter3); IndexSettings settingsAnd = new IndexSettings(); settingsAnd.setDocumentFilter(finalFilterAnd);Documenten indexeren:
Index indexAnd = new Index("YOUR_OUTPUT_DIRECTORY\\LogicalAndFilter", settingsAnd); indexAnd.add("YOUR_DOCUMENT_DIRECTORY");
Logische OR‑filter
Neem bestanden op die een van de opgegeven voorwaarden vervullen—handig wanneer je zowel kleine tekstbestanden als grotere niet‑tekstbestanden wilt vastleggen.
Implementatiestappen
Filters definiëren:
DocumentFilter txtFilter = DocumentFilter.createFileExtension(".txt"); DocumentFilter notTxtFilter = DocumentFilter.createNot(txtFilter);Filters combineren met logische voorwaarden:
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);OR‑filter finaliseren:
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");
Creatietijd‑filters
Target bestanden die binnen een specifieke periode zijn aangemaakt—een klassiek date range filter java‑scenario.
Implementatiestappen
Datum‑range‑filter definiëren:
DocumentFilter filter3CTime = DocumentFilter.createCreationTimeRange(Utils.createDate(2017, 1, 1), Utils.createDate(2018, 6, 15)); IndexSettings settingsCTime = new IndexSettings(); settingsCTime.setDocumentFilter(filter3CTime);Documenten indexeren:
Index indexCTime = new Index("YOUR_OUTPUT_DIRECTORY\\CreationTimeFilters", settingsCTime); indexCTime.add("YOUR_DOCUMENT_DIRECTORY");
Wijzigingstijd‑filters
Sluit bestanden uit die na een bepaalde cut‑off datum zijn gewijzigd.
Implementatiestappen
Filter definiëren:
DocumentFilter filter2MTime = DocumentFilter.createModificationTimeUpperBound(Utils.createDate(2018, 6, 15)); IndexSettings settingsMTime = new IndexSettings(); settingsMTime.setDocumentFilter(filter2MTime);Documenten indexeren:
Index indexMTime = new Index("YOUR_OUTPUT_DIRECTORY\\ModificationTimeFilters", settingsMTime); indexMTime.add("YOUR_DOCUMENT_DIRECTORY");
Pad‑filtering
Beperk indexering tot bestanden die zich in specifieke mappen bevinden of aan een patroon voldoen—ideaal voor include files by extension binnen een bepaalde directory‑hiërarchie.
Implementatiestappen
Bestandspad‑filter definiëren:
DocumentFilter pathFilter = DocumentFilter.createPath("*.txt", "documents/"); IndexSettings settingsPath = new IndexSettings(); settingsPath.setDocumentFilter(pathFilter);Index initialiseren en documenten toevoegen:
Index indexPath = new Index("YOUR_OUTPUT_DIRECTORY\\FilePathFilter", settingsPath); indexPath.add("YOUR_DOCUMENT_DIRECTORY");
Veelvoorkomende valkuilen & tips
- Mix nooit absolute en relatieve paden in dezelfde filterconfiguratie – dit kan leiden tot onverwachte uitsluitingen.
- Reset de
IndexSettingsbij het wisselen van filtersets; anders kunnen eerdere filters blijven bestaan. - Combineer een bovengrens voor lengte met een extensiefilter voor grote collecties om het geheugenverbruik laag te houden.
- Schakel logging in (
LoggingOptions.setEnabled(true)) om te zien waarom een bestand is afgewezen.
Veelgestelde vragen
V: Kan ik de filtercriteria wijzigen nadat de index is aangemaakt?
A: Ja. Bouw de index opnieuw op met een nieuwe DocumentFilter of gebruik incrementele indexering met bijgewerkte instellingen.
V: Werkt de java‑bestandsextensiefilter op gecomprimeerde archieven (bijv. ZIP)?
A: GroupDocs.Search kan ondersteunde archiefformaten indexeren, maar de extensiefilter wordt toegepast op het archief zelf, niet op de interne bestanden. Gebruik geneste filters voor diepere controle.
V: Hoe debug ik waarom een bepaald bestand is uitgesloten?
A: Schakel de logging van de bibliotheek in (LoggingOptions.setEnabled(true)) en inspecteer het log‑bestand – het meldt welke filter elk bestand heeft afgewezen.
V: Is het mogelijk de java‑bestandsextensiefilter te combineren met aangepaste regex‑filters?
A: Absoluut. Plaats een regex‑filter binnen DocumentFilter.createAnd() naast de extensiefilter.
V: Welke prestatie‑impact heeft het toevoegen van veel filters?
A: Elke filter voegt een bescheiden overhead toe tijdens het indexeren, maar de reductie in geïndexeerde data weegt meestal zwaarder dan de kosten. Test met een representatieve steekproef om de optimale balans te vinden.
Laatst bijgewerkt: 2026-02-21
Getest met: GroupDocs.Search 25.4 voor Java
Auteur: GroupDocs