Behärska java‑filändelsefiltret med GroupDocs.Search
Att hantera ett växande arkiv av dokument kan snabbt bli överväldigande, särskilt när du bara vill indexera vissa filtyper. java‑filändelsefiltret låter dig tala om för GroupDocs.Search exakt vilka ändelser som ska inkluderas eller exkluderas, vilket ger dig exakt kontroll över din indexeringspipeline. I den här guiden går vi igenom hur du konfigurerar GroupDocs.Search för Java och visar hur du kombinerar fil‑ändelsefiltrering med logiska AND‑, OR‑ och NOT‑operatorer, samt datum‑intervall‑ och sökvägsfilter.
Snabba svar
- Vad är java‑filändelsefiltret? En konfiguration som talar om för GroupDocs.Search vilka filändelser som ska inkluderas eller exkluderas under indexering.
- Vilket bibliotek tillhandahåller denna funktion? GroupDocs.Search för Java.
- Behöver jag en licens? En gratis provperiod fungerar för utvärdering; en full licens krävs för produktion.
- Kan jag kombinera filter? Ja – du kan kedja ihop extensions‑, datum‑, storleks‑ och sökvägsfilter med AND, OR, NOT‑logik.
- Är det Maven‑kompatibelt? Absolut – lägg till GroupDocs.Search‑beroendet i din
pom.xml.
Vad är ett java‑filändelsefilter?
Ett java‑filändelsefilter är en regeluppsättning som utvärderar varje fils ändelse innan den skickas till indexeringsmotorn. Genom att ange ändelser som .txt, .pdf eller .epub kan du inkludera filer efter ändelse eller exkludera filer efter ändelse för att hålla ditt index fokuserat och dina sökresultat relevanta.
Varför använda fil‑ändelsefiltrering med GroupDocs.Search?
- Prestanda: Att hoppa över oönskade filer minskar I/O och snabbar upp indexeringen.
- Lagringsbesparingar: Endast relevanta dokument lagras i indexet, vilket minskar diskutrymmet.
- Efterlevnad: Förhindrar oavsiktlig indexering av konfidentiella eller ej stödda filtyper.
- Flexibilitet: Kombinera med date range filter java‑funktioner för att rikta in dig på filer som skapats eller ändrats inom specifika perioder.
Förutsättningar
Innan vi börjar, se till att du har följande:
Nödvändiga bibliotek och beroenden
- GroupDocs.Search för Java: Version 25.4 eller senare
- Java Development Kit (JDK): Kompatibel version installerad
Miljöuppsättning
- Integrerad utvecklingsmiljö (IDE): IntelliJ IDEA, Eclipse eller någon Maven‑kompatibel IDE.
Kunskapsförutsättningar
- Grundläggande Java‑programmering
- Bekantskap med fil‑I/O i Java
- Förståelse för reguljära uttryck och datum‑tid‑hantering
Installera GroupDocs.Search för Java
För att börja använda GroupDocs.Search måste du lägga till det som ett beroende i ditt projekt.
Maven‑konfiguration
Lägg till följande repository‑ och beroende‑konfiguration i din pom.xml‑fil:
<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>
Direkt nedladdning
Alternativt kan du ladda ner den senaste versionen direkt från GroupDocs.Search for Java releases.
Licensförvärv
- Free Trial – utforska funktionerna utan kostnad.
- Temporary License – få full funktionalitet under en begränsad period.
- Purchase – skaffa en permanent licens för produktionsbruk.
Grundläggande initiering och konfiguration
När biblioteket är tillagt, initiera din indexeringsmiljö:
import com.groupdocs.search.*;
String indexFolder = "YOUR_OUTPUT_DIRECTORY";
Index index = new Index(indexFolder);
Implementeringsguide
Nedan går vi igenom varje filtertyp, förklarar varför det är viktigt och ger steg‑för‑steg‑kod som du kan kopiera in i ditt projekt.
Fil‑ändelsefiltrering
Filtrera filer efter deras ändelser under indexering. Detta är perfekt när du bara vill bearbeta e‑böcker (.fb2, .epub) och rena textfiler (.txt).
Översikt
Använd DocumentFilter.createFileExtension för att vitlista ändelser.
Implementeringssteg
Skapa filter:
DocumentFilter filter = DocumentFilter.createFileExtension(".fb2", ".epub", ".txt"); IndexSettings settings = new IndexSettings(); settings.setDocumentFilter(filter);Initiera index och lägg till dokument:
Index index = new Index("YOUR_OUTPUT_DIRECTORY\\FileExtensionFilter", settings); index.add("YOUR_DOCUMENT_DIRECTORY");
Logiskt NOT‑filter
Exkludera specifika ändelser, såsom webbsidor och PDF‑filer, när de inte behövs för ditt sökscenario.
Implementeringssteg
Skapa exkluderingsfilter:
DocumentFilter filterNot = DocumentFilter.createFileExtension(".htm", ".html", ".pdf"); DocumentFilter invertedFilter = DocumentFilter.createNot(filterNot);Applicera på IndexSettings:
IndexSettings settingsNot = new IndexSettings(); settingsNot.setDocumentFilter(invertedFilter);Lägg till dokument:
Index indexNot = new Index("YOUR_OUTPUT_DIRECTORY\\LogicalNotFilter", settingsNot); indexNot.add("YOUR_DOCUMENT_DIRECTORY");
Logiskt AND‑filter
Kombinera flera villkor – skapelsedatum, ändelse och filstorlek – så att endast filer som uppfyller alla kriterier indexeras.
Översikt
DocumentFilter.createAnd sammanslår flera filter till en enda regel.
Implementeringssteg
Definiera filter:
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);Kombinera filter:
DocumentFilter finalFilterAnd = DocumentFilter.createAnd(filter1, filter2, filter3); IndexSettings settingsAnd = new IndexSettings(); settingsAnd.setDocumentFilter(finalFilterAnd);Indexera dokument:
Index indexAnd = new Index("YOUR_OUTPUT_DIRECTORY\\LogicalAndFilter", settingsAnd); indexAnd.add("YOUR_DOCUMENT_DIRECTORY");
Logiskt OR‑filter
Inkludera filer som uppfyller något av de angivna villkoren – användbart när du vill fånga både små textfiler och större icke‑textfiler.
Implementeringssteg
Definiera filter:
DocumentFilter txtFilter = DocumentFilter.createFileExtension(".txt"); DocumentFilter notTxtFilter = DocumentFilter.createNot(txtFilter);Kombinera filter med logiska villkor:
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);Slutför 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");
Skapandetidsfilter
Rikta in dig på filer som skapats inom en specifik period – ett klassiskt date range filter java‑scenario.
Implementeringssteg
Definiera datumintervallfilter:
DocumentFilter filter3CTime = DocumentFilter.createCreationTimeRange(Utils.createDate(2017, 1, 1), Utils.createDate(2018, 6, 15)); IndexSettings settingsCTime = new IndexSettings(); settingsCTime.setDocumentFilter(filter3CTime);Indexera dokument:
Index indexCTime = new Index("YOUR_OUTPUT_DIRECTORY\\CreationTimeFilters", settingsCTime); indexCTime.add("YOUR_DOCUMENT_DIRECTORY");
Ändringstidsfilter
Exkludera filer som har ändrats efter ett visst avstämningsdatum.
Implementeringssteg
Definiera filter:
DocumentFilter filter2MTime = DocumentFilter.createModificationTimeUpperBound(Utils.createDate(2018, 6, 15)); IndexSettings settingsMTime = new IndexSettings(); settingsMTime.setDocumentFilter(filter2MTime);Indexera dokument:
Index indexMTime = new Index("YOUR_OUTPUT_DIRECTORY\\ModificationTimeFilters", settingsMTime); indexMTime.add("YOUR_DOCUMENT_DIRECTORY");
Fil‑sökvägsfiltrering
Begränsa indexering till filer som ligger i specifika mappar eller matchar ett mönster – idealiskt för include files by extension inom en viss katalogstruktur.
Implementeringssteg
Definiera fil‑sökvägsfilter:
DocumentFilter pathFilter = DocumentFilter.createPath("*.txt", "documents/"); IndexSettings settingsPath = new IndexSettings(); settingsPath.setDocumentFilter(pathFilter);Initiera index och lägg till dokument:
Index indexPath = new Index("YOUR_OUTPUT_DIRECTORY\\FilePathFilter", settingsPath); indexPath.add("YOUR_DOCUMENT_DIRECTORY");
Vanliga fallgropar & tips
- Blanda aldrig absoluta och relativa sökvägar i samma filterkonfiguration – det kan leda till oväntade exkluderingar.
- Återställ
IndexSettingsnär du byter filteruppsättningar; annars kan tidigare filter kvarstå. - Kombinera ett övre storleksgränsvärde med ett extensionsfilter för stora samlingar för att hålla minnesanvändningen låg.
- Aktivera loggning (
LoggingOptions.setEnabled(true)) för att se varför en fil avvisades.
Vanliga frågor
Q: Kan jag ändra filterkriterierna efter att indexet har skapats?
A: Ja. Bygg om indexet med ett nytt DocumentFilter eller använd inkrementell indexering med uppdaterade inställningar.
Q: Fungerar java‑filändelsefiltret på komprimerade arkiv (t.ex. ZIP)?
A: GroupDocs.Search kan indexera stödda arkivformat, men extensions‑filtret gäller själva arkivet, inte de inre filerna. Använd nästlade filter för djupare kontroll.
Q: Hur felsöker jag varför en viss fil exkluderades?
A: Aktivera bibliotekets loggning (LoggingOptions.setEnabled(true)) och inspektera loggen – den rapporterar vilket filter som avvisade varje fil.
Q: Är det möjligt att kombinera java‑filändelsefiltret med egna regex‑filter?
A: Absolut. Inkludera ett regex‑filter i DocumentFilter.createAnd() tillsammans med extensions‑filtret.
Q: Vilken prestandapåverkan har många filter?
A: Varje filter ger en måttlig overhead under indexering, men minskningen av indexerad data väger oftast tyngre än kostnaden. Testa med ett representativt urval för att hitta optimal balans.
Senast uppdaterad: 2026-02-21
Testat med: GroupDocs.Search 25.4 för Java
Författare: GroupDocs