Jak indeksować dokumenty przy użyciu GroupDocs.Search dla Javy

W dzisiejszym świecie napędzanym danymi, how to index documents efektywnie jest kluczową umiejętnością dla każdego programisty Java pracującego z dużymi zbiorami plików. Niezależnie od tego, czy przetwarzasz umowy prawne, sprawozdania finansowe, czy wewnętrzne raporty, dobrze zbudowany indeks wyszukiwania pozwala znaleźć dokładny fragment informacji w ciągu sekund zamiast godzin ręcznego przeszukiwania. Ten samouczek przeprowadzi Cię przez tworzenie indeksu wyszukiwania, dodawanie dokumentów oraz wykonywanie zarówno zapytań tekstowych, jak i obiektowych przy użyciu GroupDocs.Search dla Javy.

Szybkie odpowiedzi

  • Jaki jest pierwszy krok do indeksowania dokumentów? Utwórz instancję Index, która wskazuje folder, w którym będą przechowywane pliki indeksu.
  • Która metoda dodaje dokumenty do indeksu? Wywołaj index.add("PATH_TO_DOCUMENTS"), aby przeskanować katalog i wczytać obsługiwane pliki.
  • Czy mogę wyszukiwać zakresy liczbowe? Tak – użyj zapytania tekstowego takiego jak "400 ~~ 4000" lub zapytania obiektowego poprzez SearchQuery.createNumericRangeQuery. Metoda createNumericRangeQuery tworzy obiekt zapytania zakresu liczbowego.
  • Czy potrzebuję licencji? Darmowa wersja próbna działa w celach oceny; licencja komercyjna odblokowuje pełny zestaw funkcji i usuwa ograniczenia użytkowania.
  • Jakiej wersji Javy wymaga? Obsługiwana jest JDK 8 lub nowsza.

Czym jest indeksowanie dokumentów przy użyciu GroupDocs.Search?

Indeksowanie dokumentów tworzy przeszukiwalny magazyn tokenów dla każdego pliku, umożliwiając silnikowi pobieranie dopasowań bez konieczności odczytywania oryginalnych plików przy każdym zapytaniu. Ten krok wstępnego przetwarzania przekształca surową zawartość w zoptymalizowany indeks, który można przeszukiwać w milisekundach. Indeks przechowuje terminy, pozycje i metadane, umożliwiając szybkie wyszukiwanie fraz i bliskości wśród wszystkich obsługiwanych typów dokumentów.

Dlaczego warto używać GroupDocs.Search dla Javy?

Operacje wyszukiwania zazwyczaj kończą się w czasie krótszym niż 50 ms przy kolekcji 10 000 plików (średnio 1 KB każdy) działającej na standardowej maszynie wirtualnej 2‑CPU, 8 GB. Biblioteka obsługuje 30+ formatów wejściowych i wyjściowych — w tym PDF, DOCX, XLSX, PPTX, TXT i HTML — więc możesz indeksować praktycznie każdy dokument biznesowy bez dodatkowych konwerterów. Jej elastyczne API pozwala łączyć zapytania tekstowe, zakresy liczbowe i złożone zapytania obiektowe, a aktualizacje przyrostowe umożliwiają dodawanie nowych plików bez przebudowy całego indeksu.

Wymagania wstępne

  • Maven zainstalowany do zarządzania zależnościami.
  • IDE, takie jak IntelliJ IDEA lub Eclipse.
  • Podstawowa znajomość Javy (koncepcje OOP, obsługa wyjątków).

Konfiguracja GroupDocs.Search dla Javy

Konfiguracja Maven

Add the repository and dependency to your 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

Możesz również pobrać najnowszy plik JAR z GroupDocs.Search for Java releases.

Kroki uzyskania licencji

  1. Free trial – przetestuj bibliotekę bez kosztów.
  2. Temporary license – poproś o krótkoterminowy klucz do rozszerzonej oceny.
  3. Purchase – uzyskaj pełną licencję do użytku produkcyjnego.

Podstawowa inicjalizacja i konfiguracja

Aby add documents to the index, najpierw utwórz obiekt Index, który wskazuje folder, w którym będą przechowywane pliki indeksu:

Index jest podstawową klasą reprezentującą przeszukiwalny indeks na dysku.

import com.groupdocs.search.Index;

// Initialize the index by specifying a directory path
Index index = new Index("YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\NumericRangeSearch");

Ten wiersz tworzy (lub otwiera) indeks gotowy do przyjmowania dokumentów.

Przewodnik implementacji

Tworzenie i indeksowanie dokumentów

Jak dodać dokumenty do indeksu

Metoda add skanuje folder i zapisuje przeszukiwalne dane dla każdego pliku. Rekurencyjnie przetwarza wszystkie obsługiwane dokumenty, wyodrębnia tekst i metadane oraz zapisuje tokeny do folderu indeksu określonego wcześniej.

import com.groupdocs.search.Index;

// Initialize an index at the specified path
Index index = new Index("YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\NumericRangeSearch");

// Add documents from a directory for indexing
index.add("YOUR_DOCUMENT_DIRECTORY");
  • Parameters: Ciąg znaków ścieżki wskazuje folder zawierający pliki, które chcesz zindeksować.
  • Purpose: Po tym kroku indeks zawiera tokeny ze wszystkich obsługiwanych typów dokumentów, umożliwiając szybkie wyszukiwanie w całej kolekcji.

Wyszukiwanie zapytań tekstowych

Jak wykonać wyszukiwanie zakresu liczbowego oparte na tekście

Możesz wyszukiwać używając prostego ciągu definiującego zakres. Silnik interpretuje operator ~~ jako „pomiędzy” i zwraca wszystkie dokumenty zawierające liczby w określonych granicach.

import com.groupdocs.search.*;
import com.groupdocs.search.results.*;

// Define a query for numeric values within a specific range
String query1 = "400 ~~ 4000";

// Execute text-based search on indexed data
SearchResult result1 = index.search(query1);
  • Parameters: Ciąg zapytania "400 ~~ 4000" informuje silnik, aby znalazł liczby pomiędzy 400 a 4000.
  • Return value: SearchResult zawiera listę pasujących dokumentów i podświetla dopasowane fragmenty.

Wyszukiwanie zapytań obiektowych

Jak używać zapytania obiektowego dla zakresów liczbowych

Zapytania oparte na obiektach dają programistyczną kontrolę nad kryteriami wyszukiwania, umożliwiając łączenie wielu warunków lub dynamiczne budowanie zapytań w czasie wykonywania.

import com.groupdocs.search.*;
import com.groupdocs.search.results.*;

// Create a numeric range query object
SearchQuery query2 = SearchQuery.createNumericRangeQuery(400, 4000);

// Perform search using the query object
SearchResult result2 = index.search(query2);
  • Parameters: createNumericRangeQuery przyjmuje liczby całkowite określające początek i koniec.
  • Purpose: Ta metoda jest idealna, gdy potrzebujesz filtrować wyniki według pól liczbowych, takich jak sumy faktur, wiek czy kody produktów.

Praktyczne zastosowania

Oto kilka rzeczywistych scenariuszy, w których how to index documents staje się przełomem:

  1. Legal document management – znajdź klauzule, numery spraw lub daty w tysiącach umów w ciągu sekund.
  2. Financial reporting – wyciągnij transakcje mieszczące się w określonym przedziale pieniężnym bez przeglądania każdego arkusza kalkulacyjnego.
  3. Inventory tracking – znajdź przedmioty według numerów seryjnych, kodów partii lub zakresów SKU w rozproszonym systemie plików.

Integracja GroupDocs.Search z bazami danych, przechowywaniem w chmurze lub kolejkami komunikatów może dodatkowo zautomatyzować przepływy pracy z dokumentami.

Rozważania dotyczące wydajności

  • Regular index updates: Ponownie uruchom index.add dla nowych plików, aby utrzymać indeks aktualnym.
  • Resource management: Monitoruj zużycie pamięci heap; duże indeksy korzystają z dostrojonych ustawień garbage‑collection JVM.
  • Query optimisation: Używaj zapytań obiektowych dla złożonych filtrów, aby zmniejszyć niepotrzebne skanowanie i poprawić czas odpowiedzi.

Częste problemy i rozwiązania

ProblemDlaczego się pojawiaRozwiązanie
Wyszukiwanie nie zwraca wynikówIndeks nie został zbudowany lub ścieżka folderu jest nieprawidłowaSprawdź, czy index.add został wykonany w prawidłowym katalogu oraz czy folder indeksu jest zapisywalny.
OutOfMemoryError podczas indeksowaniaBardzo duże pliki lub niewystarczająca pamięć heapZwiększ wartość JVM -Xmx lub indeksuj pliki w mniejszych partiach.
Nieobsługiwany format plikuTyp pliku nie jest rozpoznawany przez GroupDocs.SearchUpewnij się, że rozszerzenie znajduje się na liście obsługiwanych (PDF, DOCX, XLSX, PPTX, TXT, HTML itp.).

Najczęściej zadawane pytania

Q: Jak zaktualizować istniejący indeks nowymi dokumentami?
A: Wywołaj ponownie index.add("NEW_DOCUMENT_PATH"); biblioteka scala nowe wpisy bez ponownego tworzenia całego indeksu.

Q: Czy GroupDocs.Search obsługuje różne formaty plików?
A: Tak, obsługuje ponad 30 formatów — w tym PDF, DOCX, XLSX, PPTX, TXT i HTML — więc możesz indeksować praktycznie każdy dokument biznesowy.

Q: Jakie są wymagania systemowe dla GroupDocs.Search?
A: Środowisko uruchomieniowe Java 8+, co najmniej 2 GB RAM dla niewielkich kolekcji (większe zestawy korzystają z 4 GB+), oraz dostęp odczyt/zapis do folderu indeksu.

Q: Jak mogę rozwiązać problemy z wydajnością wyszukiwania?
A: Utrzymuj indeks aktualny, profiluj zapytania i sprawdzaj ustawienia pamięci JVM. Zmniejszenie liczby indeksowanych pól lub użycie zapytań obiektowych może również przyspieszyć wykonanie.

Q: Czy istnieje obsługa synonimów lub dopasowania przybliżonego?
A: Tak, możesz włączyć słowniki synonimów i wyszukiwanie przybliżone za pomocą klasy SearchOptions, aby rozszerzyć dopasowanie bez utraty trafności. Klasa SearchOptions konfiguruje zaawansowane zachowanie wyszukiwania, takie jak synonimy i dopasowanie przybliżone.


Ostatnia aktualizacja: 2026-08-10
Testowano z: GroupDocs.Search 25.4 for Java
Autor: GroupDocs

Powiązane samouczki