Jak indexovat dokumenty pomocí GroupDocs.Search pro Java
V dnešním datově řízeném světě je jak indexovat dokumenty efektivně kritickou dovedností pro každého Java vývojáře pracujícího s velkými kolekcemi souborů. Ať už zpracováváte právní smlouvy, finanční výkazy nebo interní zprávy, dobře vytvořený vyhledávací index vám umožní najít přesně požadovanou informaci během několika sekund místo hodin ručního procházení. Tento tutoriál vás provede vytvořením vyhledávacího indexu, přidáváním dokumentů a spouštěním jak textových, tak objektových dotazů pomocí GroupDocs.Search pro Java.
Rychlé odpovědi
- Jaký je první krok při indexování dokumentů? Vytvořte instanci
Index, která ukazuje na složku, kde budou uloženy soubory indexu. - Která metoda přidává dokumenty do indexu? Zavolejte
index.add("PATH_TO_DOCUMENTS")pro prohledání adresáře a načtení podporovaných souborů. - Mohu vyhledávat číselné rozsahy? Ano – použijte textový dotaz jako
"400 ~~ 4000"nebo objektový dotaz pomocíSearchQuery.createNumericRangeQuery. MetodacreateNumericRangeQueryvytváří objekt číselného rozsahu dotazu. - Potřebuji licenci? Bezplatná zkušební verze funguje pro hodnocení; komerční licence odemyká celý soubor funkcí a odstraňuje omezení používání.
- Jaká verze Javy je požadována? Je podporováno JDK 8 nebo vyšší.
Co je indexování dokumentů pomocí GroupDocs.Search?
Indexování dokumentů vytváří pro každý soubor vyhledávatelný úložiště tokenů, což umožňuje enginu získávat shody bez nutnosti číst originální soubory pokaždé. Tento předzpracovatelský krok převádí surový obsah do optimalizovaného indexu, který lze dotazovat během milisekund. Index ukládá termíny, pozice a metadata, což umožňuje rychlé vyhledávání frází a blízkosti napříč všemi podporovanými typy dokumentů.
Proč používat GroupDocs.Search pro Java?
Vyhledávací operace obvykle trvají méně než 50 ms u kolekce 10 000 souborů (průměrně 1 KB každý) běžící na standardní 2‑CPU, 8 GB VM. Knihovna podporuje 30+ vstupních a výstupních formátů—včetně PDF, DOCX, XLSX, PPTX, TXT a HTML—takže můžete indexovat prakticky jakýkoli obchodní dokument bez dalších konvertorů. Její flexibilní API vám umožňuje kombinovat dotazy v prostém textu, číselné rozsahy a složité objektové dotazy, zatímco inkrementální aktualizace vám umožňují přidávat nové soubory bez přestavování celého indexu.
Předpoklady
- Maven nainstalovaný pro správu závislostí.
- IDE jako IntelliJ IDEA nebo Eclipse.
- Základní znalost Javy (OOP koncepty, zpracování výjimek).
Nastavení GroupDocs.Search pro Java
Nastavení Maven
Přidejte repozitář a závislost do vašeho 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>
Přímé stažení
Můžete také stáhnout nejnovější JAR z GroupDocs.Search for Java releases.
Kroky získání licence
- Free trial – prozkoumejte knihovnu bez nákladů.
- Temporary license – požádejte o krátkodobý klíč pro rozšířené hodnocení.
- Purchase – získejte plnou licenci pro produkční použití.
Základní inicializace a nastavení
Pro přidání dokumentů do indexu nejprve vytvoříte objekt Index, který ukazuje na složku, kde budou uloženy soubory indexu:
Index je hlavní třída, která představuje vyhledávatelný index na disku.
import com.groupdocs.search.Index;
// Initialize the index by specifying a directory path
Index index = new Index("YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\NumericRangeSearch");
Tento řádek vytvoří (nebo otevře) index připravený přijímat dokumenty.
Průvodce implementací
Vytváření a indexování dokumentů
Jak přidat dokumenty do indexu
Metoda add prohledá složku a uloží vyhledávatelná data pro každý soubor. Rekurzivně zpracuje všechny podporované dokumenty, extrahuje text a metadata a zapíše tokeny do složky indexu, kterou jste uvedli dříve.
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");
- Parametry: Řetězec cesty ukazuje na složku obsahující soubory, které chcete indexovat.
- Účel: Po tomto kroku index obsahuje tokeny ze všech podporovaných typů dokumentů, což umožňuje rychlé vyhledávání v celé kolekci.
Vyhledávání textovým dotazem
Jak provést textový dotaz číselného rozsahu
Můžete vyhledávat pomocí jednoduchého řetězce, který definuje rozsah. Engine interpretuje operátor ~~ jako „mezi“ a vrací všechny dokumenty obsahující čísla v určených mezích.
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);
- Parametry: Řetězec dotazu
"400 ~~ 4000"říká enginu najít čísla mezi 400 a 4000. - Návratová hodnota:
SearchResultobsahuje seznam odpovídajících dokumentů a zvýrazňuje odpovídající fragmenty.
Vyhledávání objektovým dotazem
Jak použít objektový dotaz pro číselné rozsahy
Objektové dotazy vám poskytují programatickou kontrolu nad kritérii vyhledávání, což vám umožňuje kombinovat více podmínek nebo dynamicky během běhu vytvářet dotazy.
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);
- Parametry:
createNumericRangeQuerypřijímá počáteční a koncové celé číslo. - Účel: Tato metoda je ideální, když potřebujete filtrovat výsledky podle číselných polí, jako jsou částky faktur, věk nebo kódy produktů.
Praktické aplikace
Zde jsou některé reálné scénáře, kde jak indexovat dokumenty představuje zásadní změnu:
- Legal document management – najděte klauzule, čísla případů nebo data napříč tisíci smluv během několika sekund.
- Financial reporting – vyberte transakce spadající do konkrétního finančního rozsahu bez procházení každého tabulkového souboru.
- Inventory tracking – najděte položky podle sériových čísel, šaržových kódů nebo rozsahů SKU v distribuovaném souborovém systému.
Integrace GroupDocs.Search s databázemi, cloudovým úložištěm nebo frontami zpráv může dále automatizovat pracovní postupy s dokumenty.
Úvahy o výkonu
- Pravidelné aktualizace indexu: Znovu spusťte
index.addpro nové soubory, aby byl index aktuální. - Správa zdrojů: Sledujte využití haldy; velké indexy těží z optimalizovaných nastavení garbage‑collection JVM.
- Optimalizace dotazů: Používejte objektové dotazy pro složité filtry, abyste snížili zbytečné prohledávání a zlepšili dobu odezvy.
Časté problémy a řešení
| Problém | Proč k tomu dochází | Řešení |
|---|---|---|
| Vyhledávání nevrací žádné výsledky | Index nebyl vytvořen nebo je cesta ke složce nesprávná | Ověřte, že index.add byl spuštěn ve správném adresáři a že složka indexu je zapisovatelná. |
| OutOfMemoryError during indexing | Velmi velké soubory nebo nedostatečná paměť haldy | Zvyšte hodnotu JVM -Xmx nebo indexujte soubory v menších dávkách. |
| Nepodporovaný formát souboru | Typ souboru není rozpoznán GroupDocs.Search | Ujistěte se, že přípona je v seznamu podporovaných (PDF, DOCX, XLSX, PPTX, TXT, HTML, atd.). |
Často kladené otázky
Q: Jak aktualizuji existující index novými dokumenty?
A: Znovu zavolejte index.add("NEW_DOCUMENT_PATH"); knihovna sloučí nové položky bez přestavování celého indexu.
Q: Dokáže GroupDocs.Search zpracovávat různé formáty souborů?
A: Ano, podporuje více než 30 formátů—včetně PDF, DOCX, XLSX, PPTX, TXT a HTML—takže můžete indexovat prakticky jakýkoli obchodní dokument.
Q: Jaké jsou systémové požadavky pro používání GroupDocs.Search?
A: Java 8+ runtime, alespoň 2 GB RAM pro menší kolekce (větší sady těží z 4 GB+), a přístup ke čtení/zápisu do složky indexu.
Q: Jak mohu řešit problémy s výkonem vyhledávání?
A: Udržujte index aktuální, profilujte své dotazy a přezkoumejte nastavení paměti JVM. Snížení počtu indexovaných polí nebo použití objektových dotazů může také urychlit provádění.
Q: Existuje podpora pro synonyma nebo fuzzy vyhledávání?
A: Ano, můžete povolit slovníky synonym a fuzzy vyhledávání pomocí třídy SearchOptions, což rozšíří shodu bez ztráty relevance. Třída SearchOptions konfiguruje pokročilé chování vyhledávání, jako jsou synonyma a fuzzy vyhledávání.
Poslední aktualizace: 2026-08-10
Testováno s: GroupDocs.Search 25.4 pro Java
Autor: GroupDocs