Vytvoření prohledávatelného indexu v Javě – nasazení GroupDocs.Search pro Java
V dnešním datově řízeném světě vytváření prohledávatelného indexu v Javě aplikace potřebují efektivně zpracovávat obrovské kolekce dokumentů. Ať už budujete enterprise‑grade vyhledávací službu nebo menší projekt, dobře nakonfigurovaná vyhledávací síť může dramaticky zlepšit rychlost načítání a relevanci výsledků. V tomto průvodci vás provedeme celým procesem nastavení GroupDocs.Search for Java, od přidávání souborů do vyhledávání po přidávání adresářů do uzlu, abyste mohli okamžitě začít indexovat své dokumenty.
Proč je to důležité: Prohledávatelný index snižuje latenci dotazů ze sekund na milisekundy, škáluje s růstem vašich dat a umožňuje přidat výkonné full‑textové funkce do jakéhokoli řešení založeného na Javě – ať už jde o webový portál, desktopovou aplikaci nebo cloudovou mikroservisu.
Rychlé odpovědi
- Jaký je hlavní účel GroupDocs.Search? Poskytuje škálovatelný, Java‑based engine pro indexování a vyhledávání dokumentů napříč distribuovanou sítí.
- Kterou verzi mám použít? Doporučuje se nejnovější stabilní vydání (např. 25.4) pro nové projekty.
- Potřebuji licenci? K dispozici je 30‑denní bezplatná zkušební verze; pro produkční použití je vyžadována trvalá licence.
- Mohu přidat jak soubory, tak celé adresáře? Ano – použijte pomocníky
addFilesaaddDirectoriesk načtení obsahu. - Jaká verze Javy je požadována? Java 8 nebo vyšší, s Mavenem pro správu závislostí.
- Jak funguje real‑time indexování v Javě? Přihlášením k událostem uzlu můžete spouštět automatické re‑indexování při změně souborů.
Co je „vytvoření prohledávatelného indexu v Javě“?
Vytvoření prohledávatelného indexu v Javě znamená postavit datovou strukturu, která mapuje termíny na dokumenty, jež je obsahují, což umožňuje rychlé full‑textové dotazy. GroupDocs.Search abstrahuje těžkou práci, takže se můžete soustředit na načítání dokumentů a ladění chování vyhledávání.
Proč používat GroupDocs.Search pro Java?
- Škálovatelná síťová architektura – nasazení více uzlů, které sdílejí zátěž indexování.
- Bohatá podpora formátů dokumentů – PDF, Word, Excel, PowerPoint, obrázky a další.
- Událostmi řízené aktualizace – přihlaste se k událostem uzlu a udržujte index aktuální v reálném čase.
- Jednoduchá integrace s Mavenem – přidejte několik řádků do
pom.xmla začněte indexovat.
Real‑time indexování v Javě s GroupDocs.Search
GroupDocs.Search vyvolává události vždy, když je soubor přidán, aktualizován nebo odstraněn. Zpracováním těchto událostí můžete automaticky volat addFiles nebo addDirectories, čímž zajistíte, že index zůstane synchronizovaný bez ručního zásahu. Tento přístup je ideální pro systémy správy dokumentů, obsahové portály a jakoukoli aplikaci, kde se data často mění.
Předpoklady
- JDK 8+ nainstalované na vašem vývojovém počítači.
- IDE jako IntelliJ IDEA nebo Eclipse.
- Základní znalost Javy a Mavenu.
- Přístup k knihovně GroupDocs.Search for Java (stažení nebo Maven).
Nastavení GroupDocs.Search pro Java
Maven Dependency
Přidejte repozitář a závislost do svého 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>
Tip: Udržujte číslo verze aktuální kontrolou oficiální stránky s vydáními.
Můžete také stáhnout JAR přímo z oficiálního webu: GroupDocs.Search for Java releases.
Získání licence
- Bezplatná zkušební verze: 30‑denní hodnocení.
- Dočasná licence: Požádejte o prodloužené testování.
- Koupě: Vyžadována pro produkční nasazení.
Základní inicializace
Vytvořte konfigurační objekt, který ukazuje na složku, kde budou uloženy soubory indexu, a určuje základní komunikační port:
import com.groupdocs.search.Configuration;
class InitializeSearch {
public static void main(String[] args) {
String basePath = "your/base/path";
int basePort = 8080;
Configuration config = new ConfiguringSearchNetwork().configure(basePath, basePort);
// Use this configuration for subsequent operations
}
}
Jak vytvořit prohledávatelný index v Javě s GroupDocs.Search?
Níže rozebíráme hlavní funkce, které budete potřebovat k přidání souborů do vyhledávání a přidání adresářů do uzlu, a zároveň nasadíme škálovatelnou síť.
Funkce 1 – Konfigurace a nastavení sítě
Nastavení vyhledávací sítě je prvním krokem k vytvoření prohledávatelného indexu.
import com.groupdocs.search.Configuration;
import com.groupdocs.search.scaling.*;
class ConfiguringSearchNetwork {
public static Configuration configure(String basePath, int basePort) {
// Configure the search network with specified base path and port
return new Configuration(basePath, basePort);
}
}
basePath– adresář, kde budou data indexu uložena.basePort– výchozí port; každý uzel bude inkrementovat od této hodnoty.
Funkce 2 – Nasazení uzlů vyhledávací sítě
Nasazení uzlů rozděluje zátěž indexování mezi více strojů nebo procesů.
import com.groupdocs.search.scaling.*;
class SearchNetworkDeployment {
public static SearchNetworkNode[] deploy(String basePath, int basePort, Configuration configuration) {
// Deploy nodes based on the provided configuration
return new SearchNetworkNode[]{new SearchNetworkNode()};
}
}
Každý SearchNetworkNode běží se svým vlastním indexovacím servisem, což vám umožní vytvořit prohledávatelný index v Javě, který horizontálně škáluje.
Funkce 3 – Přihlášení k událostem uzlu
Aktualizace v reálném čase udržují index synchronizovaný se změnami souborového systému.
import com.groupdocs.search.scaling.*;
class SearchNetworkNodeEvents {
public static void subscribe(SearchNetworkNode node) {
// Logic to subscribe to the specified node's events
}
}
Posloucháním událostí můžete automaticky spouštět re‑indexování, když přijdou nové soubory.
Funkce 4 – Přidávání adresářů do uzlu sítě
Použijte tento pomocník k přidání adresářů do uzlu, který rekurzivně sbírá všechny podporované dokumenty.
import java.io.File;
import java.util.ArrayList;
class DirectoryAdder {
public static void addDirectories(SearchNetworkNode node, String... directoryPaths) {
ArrayList<String> files = new ArrayList<>();
for (String directoryPath : directoryPaths) {
final File folder = new File(directoryPath);
listFiles(folder, files);
}
addFiles(node, files.toArray(new String[0]));
}
private static void listFiles(final File folder, ArrayList<String> list) {
for (final File fileEntry : folder.listFiles()) {
if (fileEntry.isDirectory()) {
listFiles(fileEntry, list);
} else {
list.add(fileEntry.getPath());
}
}
}
}
Funkce 5 – Přidávání souborů do uzlu sítě
Když potřebujete jemnější kontrolu, přidejte soubory do vyhledávání jednotlivě:
import com.groupdocs.search.Document;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import org.apache.commons.io.FilenameUtils;
import com.groupdocs.search.Indexer;
import com.groupdocs.search.options.*;
class FileAdder {
public static void addFiles(SearchNetworkNode node, String... filePaths) {
try {
InputStream[] streams = new FileInputStream[filePaths.length];
Document[] documents = new Document[filePaths.length];
for (int i = 0; i < filePaths.length; i++) {
String filePath = filePaths[i];
InputStream stream = new FileInputStream(filePath);
streams[i] = stream;
// Create a document from the input stream
String fileName = FilenameUtils.getName(filePath);
String extension = "." + FilenameUtils.getExtension(filePath);
Document document = Document.createFromStream(
fileName,
new Date(),
extension,
stream);
documents[i] = document;
}
// Initialize the indexer and configure options
Indexer indexer = node.getIndexer();
IndexingOptions options = new IndexingOptions();
options.setUseRawTextExtraction(false);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Tato metoda vám dává flexibilitu indexovat soubory pocházející ze streamů, cloudového úložiště nebo dočasných umístění.
Běžné případy použití
- Enterprise portály dokumentů, které potřebují okamžité vyhledávání napříč tisíci PDF a Office soubory.
- Právní e‑discovery platformy, kde se neustále přidává nová evidence a musí být vyhledatelná v reálném čase.
- Systémy správy obsahu, které ukládají obrázky, prezentace a tabulky a vyžadují full‑textové vyhledávání.
Běžné problémy a řešení
| Problém | Důvod | Řešení |
|---|---|---|
| V výsledcích vyhledávání se neobjevují žádné dokumenty | Index není potvrzen | Po přidání souborů zavolejte node.getIndexer().commit(). |
| Chyba konfliktu portu | Jiná služba používá basePort | Zvolte jiný basePort nebo ověřte volné porty. |
| Nepodporovaný formát souboru | Knihovna nemá parser | Ujistěte se, že je přípona souboru podporována, nebo přidejte vlastní extraktor. |
Tipy pro odstraňování potíží
- Ověřte stav uzlu: Použijte vestavěný health‑check endpoint (
http://localhost:{port}/health) a potvrďte, že každý uzel běží. - Sledujte využití paměti: Velké dávky dokumentů mohou zvýšit paměť; zvažte indexování v menších částech a pravidelné volání
commit(). - Kontrolujte logy: GroupDocs.Search zapisuje podrobné logy do složky
basePath– prohlédněte je pro chyby parsování nebo časové limity sítě.
Často kladené otázky
Q: Mohu použít GroupDocs.Search v cloudové Java aplikaci?
A: Ano. Knihovna funguje s libovolným Java runtime a můžete basePath nasměrovat na síťově připojený adresář nebo cloudové úložiště připojené lokálně.
Q: Jak aktualizuji index, když se soubor změní?
A: Přihlaste se k událostem uzlu (viz Funkce 3) a znovu zavolejte addFiles nebo addDirectories pro upravené cesty.
Q: Existuje limit na počet uzlů, které mohu nasadit?
A: Prakticky je limit dán vaším hardwarem a šířkou pásma sítě. API samo neklade žádný pevný limit.
Q: Musím po přidání nových souborů restartovat uzly?
A: Ne. Přidání souborů spustí indexování automaticky; stačí provést commit, pokud operaci odkládáte.
Q: Jaké formáty dokumentů jsou podporovány bez další konfigurace?
A: PDF, DOC/DOCX, XLS/XLSX, PPT/PPTX, TXT, HTML a mnoho typů obrázků. Kompletní seznam najdete v oficiální dokumentaci.
Q: Jak mohu povolit real‑time indexování v Javě pro složku, která neustále přijímá nahrané soubory?
A: Implementujte sledovač souborového systému (např. java.nio.file.WatchService), který při detekci nového souboru zavolá DirectoryAdder.addDirectories(node, path).
Last Updated: 2026-02-27
Tested With: GroupDocs.Search for Java 25.4
Author: GroupDocs