_BLOCK_0-10 all present.

Make sure to keep all formatting.

Let’s craft final output.# Dodawanie dokumentów do indeksu z wyszukiwaniem opartym na fragmentach w Javie

W nowoczesnych aplikacjach, które muszą szybko add documents to index i następnie wykonywać szybkie zapytania oparte na fragmentach, potrzebne jest rozwiązanie, które skaluje się bez nadmiernego zużycia pamięci. Ten samouczek przeprowadzi Cię przez konfigurację GroupDocs.Search dla Javy, dodawanie wielu folderów z dokumentami oraz konfigurowanie silnika w celu increase search performance, jednocześnie utrzymując zużycie java search index memory pod kontrolą. Niezależnie od tego, czy indeksujesz umowy prawne, zgłoszenia wsparcia, czy prace naukowe, poniższe kroki zapewnią gotową do produkcji implementację.

Szybkie odpowiedzi

  • Jaki jest pierwszy krok? Utwórz folder indeksu wyszukiwania.
  • Jak dodać wiele plików? Użyj index.add() dla każdego folderu z dokumentami.
  • Która opcja włącza wyszukiwanie fragmentów? options.setChunkSearch(true).
  • Czy mogę kontynuować wyszukiwanie po pierwszym fragmencie? Tak, wywołaj index.searchNext() z tokenem.
  • Czy potrzebuję licencji? Darmowa wersja próbna lub tymczasowa licencja działa w środowisku deweloperskim; pełna licencja jest wymagana w produkcji.

Czego się nauczysz

  • Jak utworzyć indeks wyszukiwania w określonym folderze.
  • Kroki do add documents to index z wielu lokalizacji.
  • Konfigurowanie opcji wyszukiwania w celu włączenia wyszukiwania opartego na fragmentach.
  • Wykonywanie początkowych i kolejnych wyszukiwań opartych na fragmentach.
  • Przykłady zastosowań, w których wyszukiwanie dokumentów oparte na fragmentach wyróżnia się.

Wymagania wstępne

  • Wymagane biblioteki: GroupDocs.Search for Java 25.4 or later.
  • Konfiguracja środowiska: Zainstalowany kompatybilny Java Development Kit (JDK).
  • Wymagania wiedzy: Podstawowa znajomość programowania w Javie oraz Maven.

Konfiguracja GroupDocs.Search dla Javy

Aby rozpocząć, zintegrować GroupDocs.Search z projektem przy użyciu Maven:

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

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

Uzyskanie licencji

Aby wypróbować GroupDocs.Search:

  • Free Trial – przetestuj podstawowe funkcje bez zobowiązań.
  • Temporary License – rozszerzony dostęp dla deweloperów.
  • Purchase – pełna licencja do użytku produkcyjnego.

Podstawowa inicjalizacja i konfiguracja

Utwórz indeks w folderze, w którym mają znajdować się dane do przeszukiwania:

import com.groupdocs.search.*;

public class CreateIndex {
    public static void main(String[] args) {
        String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\SearchByChunks";
        // Creating an index in the specified folder
        Index index = new Index(indexFolder);
    }
}

Jak dodać dokumenty do indeksu

Teraz, gdy indeks istnieje, następnym logicznym krokiem jest add documents to index z lokalizacji, w których przechowywane są Twoje pliki.

1. Tworzenie indeksu

Przegląd: Utwórz katalog dla indeksu wyszukiwania.

String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\SearchByChunks";
Index index = new Index(indexFolder);

2. Dodawanie dokumentów do indeksu

Przegląd: Pobierz pliki z kilku folderów źródłowych.

String documentsFolder1 = "YOUR_DOCUMENT_DIRECTORY";
String documentsFolder2 = "YOUR_DOCUMENT_DIRECTORY";
String documentsFolder3 = "YOUR_DOCUMENT_DIRECTORY";
index.add(documentsFolder1);
index.add(documentsFolder2);
index.add(documentsFolder3);

3. Konfigurowanie opcji wyszukiwania dla wyszukiwania fragmentów

Włącz wyszukiwanie oparte na fragmentach, modyfikując obiekt opcji.

SearchOptions options = new SearchOptions();
options.setChunkSearch(true);

4. Wykonywanie początkowego wyszukiwania opartego na fragmentach

Uruchom pierwsze zapytanie przy użyciu opcji włączających fragmenty.

String query = "invitation";
SearchResult result = index.search(query, options);

5. Kontynuowanie wyszukiwania opartego na fragmentach

Iteruj przez pozostałe fragmenty, aż wyszukiwanie zostanie zakończone.

while (result.getNextChunkSearchToken() != null) {
    result = index.searchNext(result.getNextChunkSearchToken());
}

Dlaczego używać wyszukiwania opartego na fragmentach?

Wyszukiwanie oparte na fragmentach dzieli ogromne kolekcje dokumentów na zarządzalne części, zmniejszając obciążenie pamięci i przyspieszając czasy odpowiedzi. Jest szczególnie korzystne, gdy:

  1. Legal teams muszą znaleźć konkretne klauzule w tysiącach umów.
  2. Customer support portals muszą natychmiast wyświetlać odpowiednie artykuły bazy wiedzy.
  3. Researchers przeszukują obszerne zestawy danych bez ładowania całych plików do pamięci.

Jak to podejście increases search performance

Wyszukując mniejsze fragmenty zamiast całych plików, silnik może:

  • Pominąć nieistotne sekcje na wczesnym etapie, oszczędzając cykle CPU.
  • Utrzymywać w pamięci tylko aktywny fragment, co bezpośrednio zmniejsza zużycie java search index memory.
  • Równolegle przetwarzać fragmenty na maszynach wielordzeniowych, uzyskując szybsze wyniki.

Zarządzanie java search index memory

Choć wyszukiwanie oparte na fragmentach już zmniejsza zużycie pamięci, możesz dodatkowo dostroić JVM:

  • Przydziel wystarczającą ilość pamięci heap (-Xmx2g lub więcej) w zależności od rozmiaru indeksu.
  • Użyj index.optimize() po masowych dodaniach, aby skompresować strukturę indeksu.
  • Monitoruj przerwy GC przy użyciu narzędzi takich jak VisualVM, aby uniknąć skoków opóźnień.

Uwagi dotyczące wydajności

  • Memory Management – Przydziel wystarczającą przestrzeń heap (-Xmx) dla dużych indeksów.
  • Resource Monitoring – Monitoruj zużycie CPU podczas operacji indeksowania i wyszukiwania.
  • Index Maintenance – Okresowo przebudowuj lub czyszcz indeks, aby usunąć przestarzałe dane.

Częste pułapki i rozwiązywanie problemów

IssueWhy It HappensFix
OutOfMemoryError podczas indeksowaniaRozmiar sterty jest zbyt małyZwiększ stertę JVM (-Xmx2g lub więcej)
Brak zwróconych wynikówToken fragmentu nie został przetworzonyUpewnij się, że pętla while działa aż getNextChunkSearchToken() będzie null
Wolna wydajność wyszukiwaniaIndeks nie jest zoptymalizowanyUruchom index.optimize() po masowych dodaniach

Najczęściej zadawane pytania

Q: Czym jest wyszukiwanie oparte na fragmentach?
A: Wyszukiwanie oparte na fragmentach dzieli zestaw danych na mniejsze części, umożliwiając efektywne zapytania na dużych wolumenach danych bez ładowania całych dokumentów do pamięci.

Q: Jak zaktualizować mój indeks o nowe pliki?
A: Po prostu wywołaj index.add() z ścieżką do nowych dokumentów; indeks automatycznie je uwzględni.

Q: Czy GroupDocs.Search obsługuje różne formaty plików?
A: Tak, obsługuje PDF‑y, DOCX, XLSX, PPTX oraz wiele innych popularnych formatów.

Q: Jakie są typowe wąskie gardła wydajności?
A: Ograniczenia pamięci i nieoptymalne indeksy są najczęstsze; przydziel wystarczającą pamięć heap i regularnie optymalizuj indeks.

Q: Gdzie mogę znaleźć bardziej szczegółową dokumentację?
A: Odwiedź oficjalną GroupDocs.Search Documentation aby uzyskać szczegółowe przewodniki i odniesienia API.

Q: Czy wyszukiwanie oparte na fragmentach działa z zaszyfrowanymi PDF‑ami?
A: Tak, pod warunkiem podania hasła za pomocą odpowiedniego przeciążenia API.

Q: Jak mogę monitorować postęp indeksowania?
A: Użyj przeciążenia Index.add(), które zwraca obiekt Progress, lub podłącz się do wywołań zwrotnych logowania.

Zasoby


Ostatnia aktualizacja: 2026-02-21
Testowano z: GroupDocs.Search 25.4 for Java
Autor: GroupDocs