Filtrowanie rozszerzeń plików java w GroupDocs.Search

W tym obszernej poradniku dowiesz się, jak filtrować rozszerzenia plików java podczas indeksowania dokumentów przy użyciu GroupDocs.Search. Po zakończeniu przewodnika będziesz mógł uwzględniać tylko potrzebne typy plików, wykluczać niechciane formaty oraz łączyć te reguły z filtrami zakresu dat i ścieżek przy użyciu operatorów logicznych AND, OR i NOT. Takie podejście utrzymuje indeks lekki, przyspiesza wyszukiwania i pomaga zachować zgodność z zasadami przetwarzania danych.

Szybkie odpowiedzi

  • Czym jest filtr rozszerzeń plików java? Jest to reguła, która informuje GroupDocs.Search, które rozszerzenia plików mają być uwzględniane lub wykluczane podczas indeksowania.
  • Która biblioteka zapewnia tę funkcję? GroupDocs.Search for Java.
  • Czy potrzebuję licencji? Darmowa wersja próbna wystarcza do oceny; pełna licencja jest wymagana w środowisku produkcyjnym.
  • Czy mogę łączyć filtry? Tak – możesz łączyć filtry rozszerzeń, dat, rozmiaru i ścieżek przy użyciu logiki AND, OR, NOT.
  • Czy jest kompatybilny z Maven? Zdecydowanie – dodaj zależność GroupDocs.Search do swojego pom.xml.

Czym jest filtr rozszerzeń plików java?

Filtr rozszerzeń plików java to zestaw reguł, który ocenia rozszerzenie każdego pliku przed jego przekazaniem do silnika indeksującego. Określając rozszerzenia takie jak .txt, .pdf lub .epub, możesz uwzględniać pliki według rozszerzenia lub wykluczać pliki według rozszerzenia, aby utrzymać indeks skoncentrowany i wyniki wyszukiwania istotne.

Dlaczego używać filtrowania rozszerzeń plików z GroupDocs.Search?

Filtrowanie rozszerzeń plików poprawia wydajność indeksowania poprzez wykluczanie nieistotnych formatów, zmniejsza wymagania dotyczące przechowywania i pomaga spełniać zasady zgodności, zapobiegając wprowadzaniu niechcianych treści do indeksu. Umożliwia także szybsze odpowiedzi na zapytania, ponieważ silnik wyszukiwania przetwarza mniejszy, bardziej istotny zestaw danych.

  • Performance: Pomijanie niechcianych plików zmniejsza operacje I/O i przyspiesza indeksowanie nawet o 40 % w dużych repozytoriach.
  • Storage savings: Tylko istotne dokumenty są przechowywane w indeksie, co zmniejsza zużycie dysku średnio o 30 %.
  • Compliance: Zapobiega przypadkowemu indeksowaniu poufnych lub nieobsługiwanych typów plików.
  • Flexibility: Łącz z funkcjami date range filter java, aby celować w pliki utworzone lub zmodyfikowane w określonych okresach.

Wymagania wstępne

Zanim zaczniemy, upewnij się, że masz następujące:

Wymagane biblioteki i zależności

  • GroupDocs.Search for Java – wersja 25.4 lub późniejsza (obsługuje ponad 60 formatów wejściowych).
  • Java Development Kit (JDK) – dowolna kompatybilna wersja (8 lub nowsza).

Konfiguracja środowiska

  • Integrated Development Environment (IDE): IntelliJ IDEA, Eclipse lub dowolne środowisko IDE kompatybilne z Maven.

Wymagania wiedzy

  • Podstawowa programowanie w Javie.
  • Znajomość operacji I/O na plikach w Javie.
  • Zrozumienie wyrażeń regularnych oraz obsługi dat i czasu.

Konfigurowanie GroupDocs.Search dla Java

Aby rozpocząć korzystanie z GroupDocs.Search, musisz dodać go jako zależność w swoim projekcie.

Konfiguracja Maven

Dodaj poniższą konfigurację repozytorium i zależności do pliku 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>

Bezpośrednie pobranie

Alternatywnie, pobierz najnowszą wersję bezpośrednio z GroupDocs.Search for Java releases.

Uzyskanie licencji

  1. Free trial – przetestuj funkcje bez kosztów.
  2. Temporary license – uzyskaj pełną funkcjonalność na ograniczony czas.
  3. Purchase – zdobądź stałą licencję do użytku produkcyjnego.

Podstawowa inicjalizacja i konfiguracja

Po dodaniu biblioteki, zainicjalizuj środowisko indeksowania. Klasa IndexSettings zawiera wszystkie opcje konfiguracji, w tym filtry.

import com.groupdocs.search.*;

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

Przewodnik implementacji

Poniżej zagłębiamy się w każdy typ filtru, wyjaśniając dlaczego ma to znaczenie i podając instrukcje krok po kroku, które możesz skopiować do swojego projektu.

Filtrowanie rozszerzeń plików

Filtruj pliki według ich rozszerzeń podczas indeksowania. To idealne rozwiązanie, gdy chcesz przetwarzać jedynie e‑książki (.fb2, .epub) oraz pliki tekstowe (.txt).

Przegląd

DocumentFilter.createFileExtension tworzy białą listę rozszerzeń.

Kroki implementacji

  1. Create filter – określ rozszerzenia, które chcesz zachować.

    DocumentFilter filter = DocumentFilter.createFileExtension(".fb2", ".epub", ".txt");
    IndexSettings settings = new IndexSettings();
    settings.setDocumentFilter(filter);
    
  2. Initialize index and add documents – zastosuj filtr przy tworzeniu IndexSettings.

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

Filtr logiczny NOT

Wyklucz określone rozszerzenia, takie jak strony internetowe i pliki PDF, gdy nie są potrzebne w twoim scenariuszu wyszukiwania.

Kroki implementacji

  1. Create exclusion filter – określ rozszerzenia do odrzucenia.

    DocumentFilter filterNot = DocumentFilter.createFileExtension(".htm", ".html", ".pdf");
    DocumentFilter invertedFilter = DocumentFilter.createNot(filterNot);
    
  2. Apply to index settings – połącz filtr NOT z innymi regułami.

    IndexSettings settingsNot = new IndexSettings();
    settingsNot.setDocumentFilter(invertedFilter);
    
  3. Add documents – indeksowane są tylko pliki, które przejdą połączony filtr.

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

Filtr logiczny AND

Połącz kilka warunków — datę utworzenia, rozszerzenie i rozmiar pliku — tak aby tylko pliki spełniające wszystkie kryteria były indeksowane.

Przegląd

DocumentFilter.createAnd łączy wiele filtrów w jedną regułę.

Kroki implementacji

  1. Define filters – utwórz osobne filtry dla każdego warunku.

    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 – użyj operatora AND, aby wymagać spełnienia wszystkich warunków.

    DocumentFilter finalFilterAnd = DocumentFilter.createAnd(filter1, filter2, filter3);
    IndexSettings settingsAnd = new IndexSettings();
    settingsAnd.setDocumentFilter(finalFilterAnd);
    
  3. Index documents – przekaż połączony filtr do potoku indeksowania.

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

Filtr logiczny OR

Uwzględnij pliki, które spełniają dowolny z określonych warunków — przydatne, gdy chcesz objąć zarówno małe pliki tekstowe, jak i większe pliki nienależące do tekstu.

Kroki implementacji

  1. Define filters – utwórz oddzielne filtry dla każdej alternatywnej sytuacji.

    DocumentFilter txtFilter = DocumentFilter.createFileExtension(".txt");
    DocumentFilter notTxtFilter = DocumentFilter.createNot(txtFilter);
    
  2. Combine filters with logical conditions – użyj operatora 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 – dołącz połączony filtr do konfiguracji indeksu.

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

Filtry czasu utworzenia

Celuj w pliki utworzone w określonym przedziale czasu — klasyczny scenariusz date range filter java.

Kroki implementacji

  1. Define date‑range filter – określ daty początkową i końcową.

    DocumentFilter filter3CTime = DocumentFilter.createCreationTimeRange(Utils.createDate(2017, 1, 1), Utils.createDate(2018, 6, 15));
    IndexSettings settingsCTime = new IndexSettings();
    settingsCTime.setDocumentFilter(filter3CTime);
    
  2. Index documents – indeksowane są tylko pliki, których znaczniki czasu utworzenia mieszczą się w podanym przedziale.

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

Filtry czasu modyfikacji

Wyklucz pliki, które zostały zmodyfikowane po określonej dacie granicznej.

Kroki implementacji

  1. Define filter – ustaw maksymalny znacznik czasu modyfikacji.

    DocumentFilter filter2MTime = DocumentFilter.createModificationTimeUpperBound(Utils.createDate(2018, 6, 15));
    IndexSettings settingsMTime = new IndexSettings();
    settingsMTime.setDocumentFilter(filter2MTime);
    
  2. Index documents – pliki nowsze niż data graniczna są pomijane.

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

Filtrowanie ścieżki pliku

Ogranicz indeksowanie do plików znajdujących się w określonych folderach lub pasujących do wzorca — idealne dla include files by extension w konkretnej hierarchii katalogów.

Kroki implementacji

  1. Define file‑path filter – użyj wzorców glob lub regex do dopasowania katalogów.

    DocumentFilter pathFilter = DocumentFilter.createPath("*.txt", "documents/");
    IndexSettings settingsPath = new IndexSettings();
    settingsPath.setDocumentFilter(pathFilter);
    
  2. Initialize index and add documents – zastosuj filtr ścieżki razem z innymi regułami.

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

Częste pułapki i wskazówki

  • Nigdy nie mieszaj ścieżek bezwzględnych i względnych w tej samej konfiguracji filtru – może to prowadzić do nieoczekiwanych wykluczeń.
  • Reset the IndexSettings przy zmianie zestawów filtrów; w przeciwnym razie poprzednie filtry mogą pozostać.
  • Combine a length upper bound with an extension filter dla dużych kolekcji, aby utrzymać niskie zużycie pamięci.
  • LoggingOptions kontroluje konfigurację logowania dla GroupDocs.Search.
  • Enable logging (LoggingOptions.setEnabled(true)) aby zobaczyć, dlaczego plik został odrzucony.

Najczęściej zadawane pytania

Q: Czy mogę zmienić kryteria filtru po utworzeniu indeksu?
A: Tak. Przebuduj indeks z nowym DocumentFilter lub użyj indeksowania przyrostowego z zaktualizowanymi ustawieniami.

Q: Czy filtr rozszerzeń plików java działa na skompresowanych archiwach (np. ZIP)?
A: GroupDocs.Search może indeksować obsługiwane formaty archiwów, ale filtr rozszerzeń odnosi się do samego archiwum, a nie do plików wewnątrz. Użyj zagnieżdżonych filtrów, aby uzyskać głębszą kontrolę.

Q: Jak debugować, dlaczego konkretny plik został wykluczony?
A: Włącz logowanie biblioteki (LoggingOptions.setEnabled(true)) i przejrzyj log – informuje, który filtr odrzucił każdy plik.

Q: Czy można połączyć filtr rozszerzeń plików java z własnymi filtrami regex?
A: Zdecydowanie. Umieść filtr regex wewnątrz DocumentFilter.createAnd() razem z filtrem rozszerzeń.

Q: Jaki wpływ na wydajność ma dodanie wielu filtrów?
A: Każdy filtr wprowadza niewielki narzut podczas indeksowania, ale redukcja danych w indeksie zazwyczaj przewyższa koszt. Przetestuj na reprezentatywnej próbce, aby znaleźć optymalny balans.


Ostatnia aktualizacja: 2026-09-06
Testowano z: GroupDocs.Search 25.4 for Java
Autor: GroupDocs

Powiązane tutoriale