Maak doorzoekbare index Java – Deploy GroupDocs.Search for Java

In de hedendaagse data‑gedreven wereld moeten creating a searchable index java applicaties enorme documentcollecties efficiënt verwerken. Of je nu een enterprise‑grade zoekservice bouwt of een kleiner project, een goed geconfigureerd zoeknetwerk kan de ophaalsnelheid en relevantie drastisch verbeteren. In deze gids lopen we stap voor stap het volledige proces door van het opzetten van GroupDocs.Search for Java, van het toevoegen van bestanden aan de zoekopdracht tot het toevoegen van mappen aan een node, zodat je direct kunt beginnen met het indexeren van je documenten.

Snelle antwoorden

  • Wat is het primaire doel van GroupDocs.Search? Het biedt een schaalbare, Java‑gebaseerde engine voor het indexeren en doorzoeken van documenten over een gedistribueerd netwerk.
  • Welke versie moet ik gebruiken? De nieuwste stabiele release (bijv. 25.4) wordt aanbevolen voor nieuwe projecten.
  • Heb ik een licentie nodig? Een gratis proefperiode van 30 dagen is beschikbaar; een permanente licentie is vereist voor productiegebruik.
  • Kan ik zowel bestanden als volledige mappen toevoegen? Ja – gebruik de addFiles en addDirectories helpers om inhoud in te voeren.
  • Welke Java‑versie is vereist? Java 8 of hoger, met Maven voor dependency‑beheer.

Wat is “create searchable index java”?

Een doorzoekbare index in Java maken betekent het bouwen van een datastructuur die termen koppelt aan de documenten waarin ze voorkomen, waardoor snelle full‑text queries mogelijk zijn. GroupDocs.Search neemt het zware werk uit handen, zodat jij je kunt concentreren op het voeden van documenten en het afstemmen van zoekgedrag.

Waarom GroupDocs.Search for Java gebruiken?

  • Schaalbare netwerkarchitectuur – Deploy meerdere nodes die de indexeerlast delen.
  • Uitgebreide ondersteuning voor documentformaten – PDF’s, Word, Excel, PowerPoint, afbeeldingen en meer.
  • Event‑gedreven updates – Abonneer je op node‑events om de index in realtime actueel te houden.
  • Eenvoudige Maven‑integratie – Voeg een paar regels toe aan pom.xml en begin met indexeren.

Voorvereisten

  • JDK 8+ geïnstalleerd op je ontwikkelmachine.
  • Een IDE zoals IntelliJ IDEA of Eclipse.
  • Basiskennis van Java en Maven.
  • Toegang tot de GroupDocs.Search for Java‑bibliotheek (download of via Maven).

GroupDocs.Search for Java instellen

Maven‑dependency

Voeg de repository en dependency toe aan je 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>

Pro tip: Houd het versienummer up‑to‑date door de officiële releases‑pagina te controleren.

Je kunt de JAR ook direct downloaden van de officiële site: GroupDocs.Search for Java releases.

Licentie‑acquisitie

  • Gratis proefversie: 30‑daagse evaluatie.
  • Tijdelijke licentie: Aanvraag voor verlengd testen.
  • Aankoop: Vereist voor productie‑implementaties.

Basisinitialisatie

Maak een configuratie‑object dat verwijst naar een map waar indexbestanden worden opgeslagen en definieer de basis‑communicatiepoort:

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
    }
}

Hoe maak je een searchable index java met GroupDocs.Search?

Hieronder splitsen we de kernfuncties op die je nodig hebt om add files to search en add directories to node uit te voeren, terwijl je een schaalbaar netwerk implementeert.

Functie 1 – Configuratie en netwerksetup

Het configureren van het zoeknetwerk is de eerste stap naar het bouwen van een doorzoekbare index.

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 waar de indexdata wordt opgeslagen.
  • basePort – Startpoort; elke node verhoogt dit getal.

Functie 2 – Search‑network nodes deployen

Nodes deployen verdeelt de indexeerlast over meerdere machines of processen.

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()};
    }
}

Elke SearchNetworkNode draait zijn eigen indexeringsservice, waardoor je create searchable index java horizontaal kunt schalen.

Functie 3 – Abonneren op node‑events

Realtime‑updates houden de index gesynchroniseerd met wijzigingen in het bestandssysteem.

import com.groupdocs.search.scaling.*;

class SearchNetworkNodeEvents {
    public static void subscribe(SearchNetworkNode node) {
        // Logic to subscribe to the specified node's events
    }
}

Door naar events te luisteren kun je automatisch herindexeren wanneer er nieuwe bestanden aankomen.

Functie 4 – Mappen toevoegen aan netwerk‑node

Gebruik deze helper om add directories to node uit te voeren, waarbij alle ondersteunde documenten recursief worden verzameld.

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());
            }
        }
    }
}

Functie 5 – Bestanden toevoegen aan netwerk‑node

Wanneer je fijnmazige controle nodig hebt, add files to search je afzonderlijk:

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();
        }
    }
}

Deze methode biedt de flexibiliteit om bestanden te indexeren die afkomstig zijn van streams, cloud‑opslag of tijdelijke locaties.

Veelvoorkomende problemen & oplossingen

ProbleemRedenOplossing
Geen documenten verschijnen in zoekresultatenIndex niet gecommitRoep node.getIndexer().commit() aan na het toevoegen van bestanden.
Poortconflict‑foutEen andere service gebruikt basePortKies een andere basePort of controleer vrije poorten.
Niet‑ondersteund bestandsformaatBibliotheek mist parserZorg dat de bestandsextensie wordt ondersteund of voeg een custom extractor toe.

Veelgestelde vragen

Q: Kan ik GroupDocs.Search gebruiken in een cloud‑gebaseerde Java‑applicatie?
A: Ja. De bibliotheek werkt met elke Java‑runtime, en je kunt basePath wijzen naar een netwerk‑gemonteerde map of cloud‑opslag die lokaal is gemount.

Q: Hoe werk ik de index bij wanneer een bestand verandert?
A: Abonneer je op node‑events (zie Functie 3) en roep addFiles of addDirectories opnieuw aan voor de gewijzigde paden.

Q: Is er een limiet aan het aantal nodes dat ik kan deployen?
A: Praktisch gezien wordt de limiet bepaald door je hardware en netwerkbandbreedte. De API zelf legt geen harde limiet op.

Q: Moet ik nodes herstarten na het toevoegen van nieuwe bestanden?
A: Nee. Het toevoegen van bestanden triggert automatisch indexering; je hoeft alleen te committen als je de operatie uitstelt.

Q: Welke documentformaten worden standaard ondersteund?
A: PDF’s, DOC/DOCX, XLS/XLSX, PPT/PPTX, TXT, HTML en vele afbeeldingsformaten. Zie de officiële documentatie voor de volledige lijst.


Laatst bijgewerkt: 2025-12-26
Getest met: GroupDocs.Search for Java 25.4
Auteur: GroupDocs