Hogyan valósítsuk meg a java teljes szöveges keresést a GroupDocs.Search segítségével

Az adat‑központú alkalmazások korszakában a java full text search elengedhetetlen a hatalmas dokumentumgyűjtemények azonnal kereshető tudásbázisokká alakításához. Akár vállalati szintű portált, akár könnyű asztali segédprogramot épít, egy jól konfigurált keresési hálózat képes a lekérdezési késleltetést másodpercekből ezrekbe csökkenteni, és a növekvő adatmennyiség mellett is releváns eredményeket biztosítani. Ez a tutorial végigvezet a GroupDocs.Search for Java telepítésén, a kereséshez fájlok hozzáadásán, a csomópontok könyvtárainak beállításán és a valós‑idő indexelés engedélyezésén, hogy indexe friss maradjon manuális beavatkozás nélkül.

Miért fontos: A java full text search index csökkenti a lekérdezési késleltetést, skálázható az adat mennyiségével, és erőteljes teljes szöveges képességeket hoz minden Java‑alapú megoldáshoz — webportálok, asztali alkalmazások vagy felhő mikro-szolgáltatások.

Gyors válaszok

  • Mi a GroupDocs.Search elsődleges célja? Skálázható, java keresőmotor biztosítása, amely indexeli és keres dokumentumokat egy elosztott hálózaton.
  • Melyik verziót kellene használnom? Az új projektekhez a legújabb stabil kiadás (pl. 25.4) ajánlott.
  • Szükségem van licencre? 30‑napos ingyenes próba elérhető; a termelési használathoz állandó licenc szükséges.
  • Hozzáadhatok fájlokat és teljes könyvtárakat is? Igen – használja a addFiles és addDirectories segédfüggvényeket a tartalom betöltéséhez.
  • Milyen Java verzió szükséges? Java 8 vagy újabb, Maven a függőségkezeléshez.
  • Hogyan működik a valós idejű indexelés java? A csomópont eseményekre feliratkozva automatikusan újra‑indexelhet, amikor a fájlok változnak.

Mi az a „create searchable index java”?

A kereshető index létrehozása Java-ban azt jelenti, hogy egy adatstruktúrát építünk, amely a kifejezéseket a tartalmazó dokumentumokhoz rendeli, lehetővé téve a gyors teljes‑szöveges lekérdezéseket. GroupDocs.Search for Java elvégzi a nehéz munkát, így Ön a dokumentumok betáplálására és a keresési viselkedés finomhangolására koncentrálhat.

Miért használjuk a GroupDocs.Search for Java‑t?

A GroupDocs.Search egy java keresőmotort biztosít, amely vízszintesen skálázható, több mint 50 bemeneti és kimeneti formátumot támogat, és esemény‑vezérelt indexelést kínál. Több csomópont telepítésével az indexelési terhelés eloszlik, míg a beépített állapot‑ellenőrzések a hálózat megbízhatóságát biztosítják. Emellett RESTful API‑kat és testreszabható elemzőket is nyújt a finomhangolt relevanciához.

Előfeltételek

  • JDK 8+ telepítve a fejlesztői gépen.
  • Olyan IDE, mint a IntelliJ IDEA vagy az Eclipse.
  • Alapvető ismeretek a Java‑ról és a Maven‑ról.
  • Hozzáférés a GroupDocs.Search for Java könyvtárhoz (letöltés vagy Maven).

A GroupDocs.Search for Java beállítása

Maven függőség

Adja hozzá a tárolót és a függőséget a pom.xml fájlhoz:

<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: Tartsd naprakészen a verziószámot az hivatalos kiadások oldalának ellenőrzésével.

A JAR fájlt közvetlenül az hivatalos oldalról is letöltheti: GroupDocs.Search for Java releases.

Licenc beszerzése

  • Free trial: 30‑napos értékelés.
  • Temporary license: Kérjen hosszabb teszteléshez.
  • Purchase: Szükséges a termelési telepítésekhez.

Alapvető inicializálás

Hozzon létre egy konfigurációs objektumot, amely egy mappára mutat, ahol az indexfájlok tárolódnak, és meghatározza az alap kommunikációs portot:

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

Hogyan hozzunk létre kereshető indexet java-val a GroupDocs.Search segítségével?

Töltsön be egy SearchConfiguration objektumot, indítson egy SearchNetworkNode‑t, és hívja meg a node.getIndexer().addFiles(...)‑t az index feltöltéséhez. Ez az egy‑soros minta egy teljesen működőképes java full text search hálózatot indít, amely azonnal képes lekérdezéseket fogadni. Ezután skálázhat további csomópontok hozzáadásával, amelyek ugyanazt az alapútvonalat és porttartományt használják.

Funkció 1 – konfiguráció és hálózati beállítás

SearchConfiguration osztály tartalmazza a csomópont indításához szükséges összes beállítást.

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 – Könyvtár, ahol az index adatok tárolódnak.
  • basePort – Kezdő port; minden csomópont ettől az értéktől növekszik.

Funkció 2 – keresési hálózati csomópontok telepítése

SearchNetworkNode egy egyedi indexelő szolgáltatást képvisel, amely bármely gépen futtatható.

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

SearchNetworkNode a fő futási komponens, amely egy indexet tárol, kezeli a hozzáadás/eltávolítás eseményeket, és válaszol a keresési lekérdezésekre. Több csomópont telepítése lehetővé teszi java full text search klaszterek létrehozását, amelyek vízszintesen skálázhatók.

Funkció 3 – csomópont eseményekre való feliratkozás

A valós‑idő frissítések szinkronban tartják az indexet a fájlrendszer változásaival.

import com.groupdocs.search.scaling.*;

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

Az események figyelésével automatikusan elindíthatja az új fájlok érkezésekor a újra‑indexelést, ezzel event driven indexing‑et érve el manuális szkriptek nélkül.

Funkció 4 – könyvtárak hozzáadása a hálózati csomóponthoz

Használja ezt a segédfüggvényt a könyvtárak csomóponthoz való hozzáadásához, amely rekurzívan összegyűjti az összes támogatott dokumentumot.

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

Funkció 5 – fájlok hozzáadása a hálózati csomóponthoz

Ha finomhangolt vezérlésre van szükség, fájlokat adjon hozzá a kereséshez egyenként:

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

Általános felhasználási esetek

  • Vállalati dokumentumportálok, amelyeknek azonnali keresésre van szükség több ezer PDF és Office fájl között.
  • Jogi e‑discovery platformok, ahol az új bizonyítékok folyamatosan kerülnek hozzáadásra, és valós időben kereshetők kell legyenek.
  • Tartalomkezelő rendszerek, amelyek képeket, prezentációkat és táblázatokat tárolnak, és teljes‑szöveges keresést igényelnek.

Gyakori problémák és megoldások

ProblémaOkMegoldás
Nem jelennek meg dokumentumok a keresési eredményekbenAz index nincs elkötelezveHívja meg a node.getIndexer().commit()-ot a fájlok hozzáadása után.
Port ütközés hibaEgy másik szolgáltatás használja a basePort-otVálasszon másik basePort-ot, vagy ellenőrizze a szabad portokat.
Nem támogatott fájlformátumA könyvtár nem tartalmaz parsertGyőződjön meg róla, hogy a fájlkiterjesztés támogatott, vagy adjon hozzá egy egyedi kinyerőt.

Hibaelhárítási tippek

  • Ellenőrizze a csomópont állapotát: Használja a beépített állapot‑ellenőrző végpontot (http://localhost:{port}/health) a csomópontok futásának megerősítéséhez.
  • Figyelje a memóriahasználatot: Nagy dokumentumcsoportok memóriahasználatot növelhetnek; indexeljen kisebb darabokban, és időnként hívja a commit()‑ot.
  • Ellenőrizze a naplókat: A GroupDocs.Search részletes naplókat ír a basePath mappába — tekintse át őket a feldolgozási hibák vagy hálózati időtúllépések miatt.

Gyakran feltett kérdések

Q: Használhatom a GroupDocs.Search‑t felhő‑alapú Java alkalmazásban?
A: Igen. A könyvtár bármely Java futtatókörnyezettel működik, és a basePath‑t beállíthatja egy hálózati megosztott mappára vagy felhő tároló csatolásra.

Q: Hogyan frissíthetem az indexet, ha egy fájl megváltozik?
A: Iratkozzon fel a csomópont eseményekre (lásd 3. funkció), és hívja újra az addFiles vagy addDirectories‑t a módosított útvonalakra.

Q: Van korlátozás a telepíthető csomópontok számában?
A: Gyakorlatilag a határ a hardver és a hálózati sávszélesség által meghatározott. Az API nem szab ki szigorú korlátot.

Q: Újra kell indítanom a csomópontokat új fájlok hozzáadása után?
A: Nem. A fájlok hozzáadása automatikusan elindítja az indexelést; csak akkor kell elkötelezni, ha késlelteti a műveletet.

Q: Mely dokumentumformátumok támogatottak alapból?
A: PDF‑ek, DOC/DOCX, XLS/XLSX, PPT/PPTX, TXT, HTML, valamint számos képformátum — összesen több mint 50 formátum.

Q: Hogyan aktiválhatom a valós időben történő java indexelést egy folyamatosan feltöltéseket kapó mappához?
A: Valósítsa meg egy fájlrendszer‑figyelőt (pl. java.nio.file.WatchService), amely minden új fájl észlelésekor meghívja a DirectoryAdder.addDirectories(node, path)‑t.


Utoljára frissítve: 2026-09-27
Tesztelve a következővel: GroupDocs.Search for Java 25.4
Szerző: GroupDocs

Kapcsolódó oktatóanyagok