Jak vyhledávat dokumenty pomocí GroupDocs.Search Java
V moderních podnikových aplikacích je jak vyhledávat dokumenty rychle a přesně kritickým požadavkem. Ať už pracujete s kontrakty, zprávami nebo jakýmkoli velkým úložištěm dokumentů, GroupDocs.Search for Java vám poskytuje robustní full‑text vyhledávač s vestavěným fuzzy matching. Tento tutoriál vás provede nastavením knihovny, vytvořením indexu, přidáváním dokumentů, konfigurací fuzzy search Java a získáváním výsledků — vše s jasnými, konverzačními vysvětleními.
Rychlé odpovědi
- Co je první krok? Nainstalujte knihovnu GroupDocs.Search Java pomocí Maven nebo si ji stáhněte přímo.
- Jak vytvořit index? Vytvořte instanci objektu
Index, který ukazuje na složku na disku; knihovna automaticky vytvoří prohledávatelnou strukturu. - Mohu vyhledávat s překlepy? Ano — povolte fuzzy search, aby se shodovaly termíny s pravopisnými chybami nebo mírnými odchylkami.
- Jak přidat dokumenty? Použijte metodu
addna instanciIndexa předávejte složku obsahující vaše soubory. - Jaká verze Javy je požadována? Je podporováno JDK 8 nebo vyšší.
Co znamená „jak vyhledávat dokumenty“ v kontextu GroupDocs.Search?
„Jak vyhledávat dokumenty“ odkazuje na proces vytváření prohledávatelného indexu a zadávání dotazů, které vracejí odpovídající soubory, případně s využitím fuzzy logiky pro toleranci pravopisných chyb. GroupDocs.Search provádí tokenizaci, indexování a řazení na pozadí, takže se můžete soustředit na obchodní logiku.
Proč používat GroupDocs.Search pro Javu?
GroupDocs.Search podporuje 30+ formátů souborů (včetně DOCX, PDF, TXT, HTML a XLSX) a dokáže indexovat více‑stovkové dokumenty bez načítání celého souboru do paměti, poskytuje odpovědi na dotazy v podsekundách na typickém serverovém hardware. Jeho funkce fuzzy search zlepšuje uživatelský zážitek tím, že vrací relevantní výsledky i při překlepových dotazech.
Předpoklady
- Java Development Kit (JDK): verze 8 nebo novější.
- IDE: IntelliJ IDEA, Eclipse nebo jakýkoli Java‑kompatibilní editor.
- GroupDocs.Search for Java library: přidejte pomocí Maven (doporučeno) nebo stáhněte JAR.
Jak nastavit GroupDocs.Search pro Javu?
Pro začátek přidejte závislost GroupDocs.Search do vašeho souboru sestavení, ujistěte se, že je URL repozitáře dostupná, a ověřte, že verze JDK splňuje minimální požadavek. Po vyřešení knihovny můžete importovat její třídy ve vašem kódu a vytvořit složku indexu na disku, kde budou uložena všechna prohledávatelná data.
Nastavení Maven
Přidejte repozitář a závislost do souboru pom.xml přesně tak, jak je uvedeno v originálním návodu.
<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í
Alternativně získáte JAR z oficiální stránky vydání:
GroupDocs.Search for Java releases
GroupDocs.Search Documentation
Jak vytvořit index?
Vytvořte trvalou složku indexu, kde GroupDocs.Search ukládá tokenizovaná data. Načtěte svůj první index jedním řádkem kódu — new Index("path/to/indexFolder"). Třída Index je hlavní komponentou, která představuje prohledávatelnou kolekci dokumentů v paměti i na disku.
import com.groupdocs.search.*;
String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Searching/SearchResults";
Index index = new Index(indexFolder);
Jak přidat dokumenty do indexu?
Použijte metodu add instance Index, aby ukazovala na složku obsahující vaše zdrojové soubory. Engine bude rekurzivně prohledávat podporované formáty, extrahovat textový obsah a aktualizovat interní struktury. Tento jediný volání efektivně zpracuje velké dávky, čímž eliminuje potřebu ručního zpracování soubor po souboru.
String documentFolder = "YOUR_DOCUMENT_DIRECTORY";
index.add(documentFolder);
Jak nakonfigurovat Fuzzy Search Java?
Třída FuzzySearchOptions definuje parametry jako edit distance a délka prefixu, které řídí, jak tolerantní je vyhledávání k pravopisným chybám. Objekt SearchOptions seskupuje všechna nastavení během vyhledávání, včetně fuzzy možností, limitů výsledků a preferencí zvýraznění. Povolením fuzzy matching nastavíte FuzzySearchOptions na objekt SearchOptions. Tím řeknete enginu, aby zvažoval termíny v nastavitelném edit distance, což dělá vyhledávání tolerantním k pravopisným chybám.
String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Searching/SearchResults";
Index index = new Index(indexFolder);
Jak provést vyhledávací operaci?
Zavolejte metodu search na objektu Index, přičemž poskytnete řetězec dotazu a nakonfigurovaný SearchOptions. Engine zpracuje požadavek, použije fuzzy matching, pokud je povoleno, a seřadí výsledky podle relevance. Operace se dokončí rychle i u velkých indexů, protože vyhledávání probíhá na předem vytvořených tokenových strukturách. Metoda vrací kolekci SearchResult, která obsahuje odpovídající dokumenty, počet výskytů a zvýrazněné úryvky.
String documentFolder = "YOUR_DOCUMENT_DIRECTORY";
index.add(documentFolder);
Jak zpracovat a zobrazit výsledky vyhledávání?
SearchResult je kolekce, která obsahuje jednotlivé objekty SearchResultItem, z nichž každý popisuje odpovídající dokument, počet výskytů a zvýrazněné úryvky. Procházejte položky SearchResult a vypište cestu každého dokumentu, počet výskytů a odpovídající fráze. Tento jednoduchý cyklus vám umožní vytvořit UI tabulky, logy nebo API odpovědi, které přesně ukazují, proč byl dokument vybrán.
import com.groupdocs.search.options.*;
SearchOptions options = new SearchOptions();
options.getFuzzySearch().setEnabled(true);
options.getFuzzySearch().setFuzzyAlgorithm(new TableDiscreteFunction(3));
Praktické aplikace
Reálné scénáře, kde jak vyhledávat dokumenty má význam:
- Správa právních dokumentů: Najděte klauzule nebo strany napříč tisíci smluv během sekund.
- Akademický výzkum: Získejte relevantní články i když je vyhledávací termín překlep.
- Enterprise Content Management: Pohánějte interní portály rychlým, tolerantním vyhledáváním s překlepy napříč zprávami, e‑maily a prezentacemi.
Úvahy o výkonu
- Obnovení indexu: Znovu spusťte
addneboupdate, kdykoli se změní zdrojové soubory, aby byly výsledky aktuální. - Správa paměti: GroupDocs.Search streamuje velké soubory, takže paměťová zátěž zůstává nízká i pro PDF s 500 stránkami.
- Dílené indexování: Rozdělte obrovské korpusy do více složek indexu, aby se paralelizovalo zpracování a zlepšila latence dotazů.
Často kladené otázky
Q: Co je fuzzy search Java a proč je užitečný?
A: Fuzzy search Java umožňuje přibližné porovnání řetězců, což umožňuje dotazům vracet výsledky i přes překlepy nebo alternativní pravopisy, čímž se zlepšuje uživatelský zážitek.
Q: Jak aktualizuji svůj index po přidání nových souborů?
A: Znovu zavolejte index.add("new/files/folder"); knihovna inteligentně sloučí nový obsah bez přestavby celého indexu.
Q: Dokáže GroupDocs.Search zpracovat PDF chráněné heslem?
A: Ano — poskytněte heslo v DocumentLoadOptions při přidávání souboru a engine dešifruje a indexuje obsah.
Q: Existuje limit na počet dokumentů, které mohu indexovat?
A: Knihovna škáluje na miliony souborů; výkon závisí na hardware a úložišti, ne na pevně daném limitu.
Q: Kde najdu pokročilejší příklady?
A: Navštivte oficiální dokumentaci pro podrobnější témata, jako jsou vlastní analyzátory a řazení výsledků.
Závěr
Nyní víte jak vyhledávat dokumenty pomocí GroupDocs.Search pro Javu, od vytvoření indexu po povolení fuzzy search Java a zpracování výsledků. Implementujte tyto kroky a poskytujte rychlé, tolerantní vyhledávání s překlepy v jakékoli aplikaci založené na Javě.
Poslední aktualizace: 2026-05-28
Testováno s: GroupDocs.Search 23.10 for Java
Autor: GroupDocs
String query = "water OR \"Lorem ipsum\"";
SearchResult result = index.search(query, options);
for (int i = 0; i < result.getDocumentCount(); i++) {
FoundDocument document = result.getFoundDocument(i);
System.out.println("\tDocument: " + document.getDocumentInfo().getFilePath());
System.out.println("\tOccurrences: " + document.getOccurrenceCount());
for (FoundDocumentField field : document.getFoundFields()) {
System.out.println("\t\tField: " + field.getFieldName());
if (field.getTerms() != null) {
for (int k = 0; k < field.getTerms().length; k++) {
System.out.println("\t\t\t" + field.getTerms()[k] + " - " + field.getTermsOccurrences()[k]);
}
}
}
}