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

  1. Free Trial – utforska funktionerna utan kostnad.
  2. Temporary License – få full funktionalitet under en begränsad period.
  3. 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

  1. Skapa filter:

    DocumentFilter filter = DocumentFilter.createFileExtension(".fb2", ".epub", ".txt");
    IndexSettings settings = new IndexSettings();
    settings.setDocumentFilter(filter);
    
  2. 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

  1. Skapa exkluderingsfilter:

    DocumentFilter filterNot = DocumentFilter.createFileExtension(".htm", ".html", ".pdf");
    DocumentFilter invertedFilter = DocumentFilter.createNot(filterNot);
    
  2. Applicera på IndexSettings:

    IndexSettings settingsNot = new IndexSettings();
    settingsNot.setDocumentFilter(invertedFilter);
    
  3. 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

  1. 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);
    
  2. Kombinera filter:

    DocumentFilter finalFilterAnd = DocumentFilter.createAnd(filter1, filter2, filter3);
    IndexSettings settingsAnd = new IndexSettings();
    settingsAnd.setDocumentFilter(finalFilterAnd);
    
  3. 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

  1. Definiera filter:

    DocumentFilter txtFilter = DocumentFilter.createFileExtension(".txt");
    DocumentFilter notTxtFilter = DocumentFilter.createNot(txtFilter);
    
  2. 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);
    
  3. 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

  1. Definiera datumintervallfilter:

    DocumentFilter filter3CTime = DocumentFilter.createCreationTimeRange(Utils.createDate(2017, 1, 1), Utils.createDate(2018, 6, 15));
    IndexSettings settingsCTime = new IndexSettings();
    settingsCTime.setDocumentFilter(filter3CTime);
    
  2. 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

  1. Definiera filter:

    DocumentFilter filter2MTime = DocumentFilter.createModificationTimeUpperBound(Utils.createDate(2018, 6, 15));
    IndexSettings settingsMTime = new IndexSettings();
    settingsMTime.setDocumentFilter(filter2MTime);
    
  2. 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

  1. Definiera fil‑sökvägsfilter:

    DocumentFilter pathFilter = DocumentFilter.createPath("*.txt", "documents/");
    IndexSettings settingsPath = new IndexSettings();
    settingsPath.setDocumentFilter(pathFilter);
    
  2. 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 IndexSettings nä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