Padroneggiare la ricerca efficiente di documenti con GroupDocs.Search per Java

Nel mondo della gestione dei documenti, trovare rapidamente contenuti specifici all’interno di numerosi documenti è fondamentale. Che tu stia gestendo contratti legali o articoli accademici, le funzionalità create index java possono far risparmiare ore di lavoro manuale. Questo tutorial approfondisce l’uso di GroupDocs.Search for Java, una potente java search library che ti aiuta a creare indici, add documents to index, e extract text java dai tuoi file in modo efficiente. Alla fine di questa guida, saprai come configurare l’indicizzazione con impostazioni personalizzate e produrre il testo dei documenti in vari formati, inclusa l’estrazione di testo strutturato.

Risposte rapide

  • Qual è lo scopo principale? Per create index java e recuperare rapidamente il contenuto del documento.
  • Quale libreria dovrei usare? La GroupDocs.Search for Java java search library.
  • Posso esportare il testo in un file? Sì, utilizza gli adattatori output text to file forniti.
  • L’estrazione strutturata è supportata? Assolutamente – utilizza l’adattatore structured text extraction.
  • Ho bisogno di una licenza? È necessaria una licenza di prova o permanente per l’uso in produzione.

Cosa imparerai

  • Come create index java e add documents to index usando GroupDocs.Search for Java.
  • Tecniche per output text to file, stream, string e dati strutturati.
  • Suggerimenti per l’ottimizzazione delle prestazioni per una ricerca efficiente e la gestione della memoria.
  • Applicazioni reali di queste funzionalità.

Prerequisiti

Prima di immergerti nel tutorial, assicurati di avere quanto segue:

  • Java Development Kit (JDK): Si consiglia la versione 8 o superiore.
  • Libreria GroupDocs.Search for Java.
  • Maven per la gestione delle dipendenze e la compilazione del progetto.
  • Conoscenza di base della programmazione Java, in particolare le operazioni di I/O su file.

Configurazione di GroupDocs.Search per Java

Per iniziare a usare GroupDocs.Search per Java, dovrai aggiungere le dipendenze necessarie al tuo progetto. Ecco come configurarlo usando Maven:

Configurazione Maven
Aggiungi le seguenti configurazioni di repository e dipendenze nel tuo file 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>

Per chi preferisce un download diretto, è possibile ottenere l’ultima versione da GroupDocs.Search for Java releases.

Acquisizione della licenza
Per utilizzare GroupDocs.Search, considera di ottenere una licenza di prova gratuita o una licenza temporanea. Per un acquisto completo, visita il loro sito ufficiale per ottenere una licenza permanente.

Come creare index java con impostazioni personalizzate

Questa sezione ti guida nella creazione di un indice, nell’aggiunta di documenti e nella configurazione della compressione per una memorizzazione ottimale.

Creazione dell’indice e indicizzazione dei documenti

Panoramica

Creare un indice ti consente di cercare i tuoi documenti in modo efficiente. L’esempio seguente dimostra come create index java con alta compressione e poi add documents to index.

import com.groupdocs.search.*;
import java.io.ByteArrayOutputStream;

public class FeatureIndexCreation {
    public static void main(String[] args) {
        // Define the folder paths for indexing
        String indexFolder = YOUR_DOCUMENT_DIRECTORY + "/OutputAdapters/Index";
        String documentsFolder = YOUR_DOCUMENT_DIRECTORY + "/DocumentsPath";  // Adjust as needed

        // Creating an index settings instance with compression enabled
        IndexSettings settings = new IndexSettings();
        settings.setTextStorageSettings(new TextStorageSettings(Compression.High));

        // Creating the index in the specified folder
        Index index = new Index(indexFolder, settings);

        // Adding documents from the specified folder to the index
        index.add(documentsFolder);
    }
}

Spiegazione

  • Impostazioni dell’indice: Attiviamo alta compressione per l’archiviazione del testo, ottimizzando l’uso dello spazio su disco.
  • Aggiunta di documenti: Il metodo index.add() adds documents to index, scansionando la cartella in modo ricorsivo.

Come esportare il testo in file, stream, stringa e formati strutturati

Di seguito sono riportati quattro metodi comuni per recuperare e memorizzare il contenuto estratto dopo aver created index java.

Esportazione del testo del documento in file

Panoramica

Questo esempio mostra come output text to file in formato HTML, utile per l’ispezione visiva o ulteriori elaborazioni.

import com.groupdocs.search.*;

public class FeatureOutputToFile {
    public static void main(String[] args) {
        String indexFolder = YOUR_DOCUMENT_DIRECTORY + "/OutputAdapters/Index";
        Index index = new Index(indexFolder);

        // Assuming documents are already indexed, retrieve the first document
        DocumentInfo[] documents = index.getIndexedDocuments();
        if (documents.length > 0) {
            DocumentInfo document = documents[0];

            // Output document text to an HTML file
            FileOutputAdapter fileOutputAdapter = new FileOutputAdapter(OutputFormat.Html, YOUR_OUTPUT_DIRECTORY + "/Text.html");
            index.getDocumentText(document, fileOutputAdapter);
        }
    }
}

Spiegazione

  • FileOutputAdapter: Converte il testo del documento indicizzato in HTML e lo scrive nel percorso file specificato.

Esportazione del testo del documento in stream

Panoramica

Quando hai bisogno di elaborazione in‑memoria — come la generazione di contenuti web dinamici — l’esportazione in uno stream è ideale.

import com.groupdocs.search.*;
import java.io.ByteArrayOutputStream;

public class FeatureOutputToStream {
    public static void main(String[] args) {
        String indexFolder = YOUR_DOCUMENT_DIRECTORY + "/OutputAdapters/Index";
        Index index = new Index(indexFolder);

        // Assuming documents are already indexed, retrieve the first document
        DocumentInfo[] documents = index.getIndexedDocuments();
        if (documents.length > 0) {
            DocumentInfo document = documents[0];

            // Output document text to a stream in HTML format
            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            StreamOutputAdapter streamOutputAdapter = new StreamOutputAdapter(OutputFormat.Html, stream);
            index.getDocumentText(document, streamOutputAdapter);
        }
    }
}

Spiegazione

  • StreamOutputAdapter: Trasmette il testo del documento in un ByteArrayOutputStream, consentendo una gestione flessibile senza toccare il file system.

Esportazione del testo del documento in stringa

Panoramica

Se hai semplicemente bisogno di registrare o visualizzare il contenuto, convertire il risultato in una String è il percorso più rapido.

import com.groupdocs.search.*;

public class FeatureOutputToString {
    public static void main(String[] args) {
        String indexFolder = YOUR_DOCUMENT_DIRECTORY + "/OutputAdapters/Index";
        Index index = new Index(indexFolder);

        // Assuming documents are already indexed, retrieve the first document
        DocumentInfo[] documents = index.getIndexedDocuments();
        if (documents.length > 0) {
            DocumentInfo document = documents[0];

            // Output document text to a string in HTML format
            StringOutputAdapter stringOutputAdapter = new StringOutputAdapter(OutputFormat.Html);
            index.getDocumentText(document, stringOutputAdapter);
            String result = stringOutputAdapter.getResult();
        }
    }
}

Spiegazione

  • StringOutputAdapter: Cattura il testo del documento in una String, facilitandone l’inserimento nei log o nei componenti UI.

Esportazione del testo del documento in formato strutturato

Panoramica

Per l’analisi avanzata — come l’estrazione di campi, tabelle o metadati personalizzati — utilizza l’adattatore di output strutturato.

import com.groupdocs.search.*;

public class FeatureOutputToStructure {
    public static void main(String[] args) {
        String indexFolder = YOUR_DOCUMENT_DIRECTORY + "/OutputAdapters/Index";
        Index index = new Index(indexFolder);

        // Assuming documents are already indexed, retrieve the first document
        DocumentInfo[] documents = index.getIndexedDocuments();
        if (documents.length > 0) {
            DocumentInfo document = documents[0];

            // Output document text to a structured format like PlainText
            StructuredOutputAdapter structuredOutputAdapter = new StructuredOutputAdapter(OutputFormat.PlainText);
            index.getDocumentText(document, structuredOutputAdapter);
        }
    }
}

Spiegazione

  • StructuredOutputAdapter: Estrae il testo del documento in un formato structured text extraction, consentendo un’analisi dettagliata o pipeline di dati a valle.

Problemi comuni e soluzioni

ProblemaCausaSoluzione
Indice non creatoPercorso della cartella errato o permessi di scrittura mancantiVerifica che indexFolder esista e che l’applicazione abbia i permessi di scrittura
Nessun documento restituitoindex.add() non chiamato o cartella di origine errataAssicurati che documentsFolder punti alla directory corretta e contenga tipi di file supportati
File di output vuotoPercorso dell’adattatore di output non valido o directory mancantiCrea la directory di destinazione (YOUR_OUTPUT_DIRECTORY) prima di eseguire
Picchi di memoria con file di grandi dimensioniCaricamento dell’intero file in memoriaUsa gli adattatori di stream (StreamOutputAdapter) per elaborare i dati in modo incrementale

Domande frequenti

Q: Posso usare GroupDocs.Search con altri linguaggi JVM come Kotlin o Scala?
A: Sì, la libreria è pura Java e funziona senza problemi con qualsiasi linguaggio JVM.

Q: Come influisce la compressione sulla velocità di ricerca?
A: L’alta compressione riduce l’uso del disco ma può aggiungere un leggero overhead CPU durante l’indicizzazione. Le prestazioni di ricerca rimangono elevate perché la libreria decomprime al volo.

Q: È possibile aggiornare un indice esistente senza ricostruirlo?
A: Assolutamente. Usa index.add() per i nuovi file e index.remove() per eliminare quelli obsoleti.

Q: Quale formato di output è migliore per ulteriori elaborazioni di linguaggio naturale?
A: PlainText tramite l’adattatore structured text extraction fornisce contenuto pulito e indipendente dalla lingua, ideale per pipeline NLP.

Q: Ho bisogno di una licenza per sviluppo e test?
A: Una licenza di prova gratuita è valida per sviluppo e valutazione. Le distribuzioni in produzione richiedono una licenza acquistata.


Ultimo aggiornamento: 2026-01-14
Testato con: GroupDocs.Search 25.4 per Java
Autore: GroupDocs