Crea un indice ricercabile Java – Distribuisci GroupDocs.Search per Java
Nel mondo odierno guidato dai dati, le applicazioni creating a searchable index java devono gestire collezioni di documenti massive in modo efficiente. Che tu stia costruendo un servizio di ricerca di livello enterprise o un progetto più piccolo, una rete di ricerca ben configurata può migliorare drasticamente la velocità di recupero e la rilevanza. In questa guida percorreremo l’intero processo di configurazione di GroupDocs.Search per Java, dall’aggiunta di file alla ricerca all’aggiunta di directory al nodo, così potrai iniziare subito a indicizzare i tuoi documenti.
Risposte rapide
- What is the primary purpose of GroupDocs.Search? Fornisce un motore scalabile, basato su Java, per indicizzare e cercare documenti su una rete distribuita.
- Which version should I use? L’ultima versione stabile (ad es., 25.4) è consigliata per nuovi progetti.
- Do I need a license? È disponibile una prova gratuita di 30 giorni; è necessaria una licenza permanente per l’uso in produzione.
- Can I add both files and whole directories? Sì – usa gli helper
addFileseaddDirectoriesper ingerire i contenuti. - What Java version is required? Java 8 o superiore, con Maven per la gestione delle dipendenze.
Cos’è “create searchable index java”?
Creare un indice ricercabile in Java significa costruire una struttura dati che mappa i termini ai documenti che li contengono, consentendo query full‑text rapide. GroupDocs.Search astrae il lavoro pesante, permettendoti di concentrarti sull’alimentazione dei documenti e sulla messa a punto del comportamento di ricerca.
Perché usare GroupDocs.Search per Java?
- Scalable network architecture – Distribuisci più nodi che condividono il carico di indicizzazione.
- Rich document format support – PDF, Word, Excel, PowerPoint, immagini e altro.
- Event‑driven updates – Iscriviti agli eventi del nodo per mantenere l’indice aggiornato in tempo reale.
- Simple Maven integration – Aggiungi poche righe a
pom.xmle inizia a indicizzare.
Prerequisiti
- JDK 8+ installato sulla tua macchina di sviluppo.
- Un IDE come IntelliJ IDEA o Eclipse.
- Conoscenza di base di Java e Maven.
- Accesso alla libreria GroupDocs.Search per Java (download o Maven).
Configurazione di GroupDocs.Search per Java
Dipendenza Maven
Aggiungi il repository e la dipendenza al tuo 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>
Suggerimento: Mantieni il numero di versione aggiornato controllando la pagina ufficiale delle release.
Puoi anche scaricare il JAR direttamente dal sito ufficiale: GroupDocs.Search for Java releases.
Acquisizione della licenza
- Free Trial: valutazione di 30 giorni.
- Temporary License: Richiedi per test estesi.
- Purchase: Necessario per le distribuzioni in produzione.
Inizializzazione di base
Crea un oggetto di configurazione che punta a una cartella dove verranno persistiti i file dell’indice e definisce la porta di comunicazione di base:
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
}
}
Come creare searchable index java con GroupDocs.Search?
Di seguito suddividiamo le funzionalità principali di cui avrai bisogno per add files to search e add directories to node, oltre a distribuire una rete scalabile.
Funzione 1 – Configurazione e impostazione della rete
Configurare la rete di ricerca è il primo passo verso la costruzione di un indice ricercabile.
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– Directory dove verranno persistiti i dati dell’indice.basePort– Porta di partenza; ogni nodo incrementerà da questo valore.
Funzione 2 – Distribuzione dei nodi della rete di ricerca
Distribuire i nodi distribuisce il carico di indicizzazione su più macchine o processi.
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()};
}
}
Ogni SearchNetworkNode esegue il proprio servizio di indicizzazione, consentendoti di create a searchable index java che scala orizzontalmente.
Funzione 3 – Sottoscrizione agli eventi del nodo
Aggiornamenti in tempo reale mantengono l’indice sincronizzato con le modifiche del file system.
import com.groupdocs.search.scaling.*;
class SearchNetworkNodeEvents {
public static void subscribe(SearchNetworkNode node) {
// Logic to subscribe to the specified node's events
}
}
Ascoltando gli eventi, puoi attivare automaticamente la re‑indicizzazione quando arrivano nuovi file.
Funzione 4 – Aggiunta di directory al nodo di rete
Usa questo helper per add directories to node, raccogliendo ricorsivamente tutti i documenti supportati.
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());
}
}
}
}
Funzione 5 – Aggiunta di file al nodo di rete
Quando hai bisogno di un controllo fine, add files to search individualmente:
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();
}
}
}
Questo metodo ti offre la flessibilità di indicizzare file provenienti da stream, storage cloud o posizioni temporanee.
Problemi comuni e soluzioni
| Problema | Motivo | Soluzione |
|---|---|---|
| No documents appear in search results | Index not committed | Call node.getIndexer().commit() after adding files. |
| Port conflict error | Another service uses basePort | Choose a different basePort or verify free ports. |
| Unsupported file format | Library lacks parser | Ensure the file extension is supported or add a custom extractor. |
Domande frequenti
Q: Posso usare GroupDocs.Search su un’applicazione Java basata su cloud?
A: Sì. La libreria funziona con qualsiasi runtime Java, e puoi puntare il basePath a una cartella montata in rete o a uno storage cloud montato localmente.
Q: Come aggiorno l’indice quando un file cambia?
A: Iscriviti agli eventi del nodo (vedi Funzione 3) e chiama nuovamente addFiles o addDirectories per i percorsi modificati.
Q: C’è un limite al numero di nodi che posso distribuire?
A: Praticamente, il limite è definito dall’hardware e dalla larghezza di banda della rete. L’API stessa non impone un limite rigido.
Q: Devo riavviare i nodi dopo aver aggiunto nuovi file?
A: No. L’aggiunta di file avvia automaticamente l’indicizzazione; è necessario eseguire il commit solo se differisci l’operazione.
Q: Quali formati di documento sono supportati di default?
A: PDF, DOC/DOCX, XLS/XLSX, PPT/PPTX, TXT, HTML e molti tipi di immagine. Consulta la documentazione ufficiale per l’elenco completo.
Ultimo aggiornamento: 2025-12-26
Testato con: GroupDocs.Search per Java 25.4
Autore: GroupDocs