Keresés attribútum szerint Java-val a GroupDocs.Search útmutató

A modern dokumentum‑központú alkalmazásokban gyakran szükség van arra, hogy a fájlokat ne csak a szövegtartalmuk, hanem egyedi metaadatok, például részleg, bizalmasági szint vagy létrehozási dátum alapján is megtaláljuk. Search by attribute java egyetlen, nagy teljesítményű lekérdezésben biztosítja ezt a lehetőséget. Ebben az oktatóanyagban megmutatjuk, hogyan lehet kötegelt módon frissíteni az attribútumokat a már indexelt fájlokon, hogyan lehet attribútumokat beilleszteni az indexelés során, és hogyan lehet hatékonyan lekérdezni a dokumentumokat metaadatok alapján a GroupDocs.Search for Java könyvtár segítségével.

Gyors válaszok

  • Mi az a “search by attribute java”? Lehetővé teszi, hogy a keresési eredményeket kulcs‑érték metaadatokkal szűrje, amelyek minden indexelt dokumentumhoz vannak csatolva.
  • Módosíthatok-e attribútumokat az indexelés után? Igen – használja az AttributeChangeBatch‑t, hogy tömeges változtatásokat alkalmazzon az egész index újraépítése nélkül.
  • Hogyan adhatok attribútumokat az indexelés során? Regisztráljon egy kezelőt a FileIndexing eseményhez, és állítsa be programozottan az attribútumokat minden fájlhoz.
  • Szükségem van licencre? Egy ingyenes próba verzió elegendő az értékeléshez; a termelési környezethez állandó licenc szükséges.
  • Melyik Java verzió szükséges? A Java 8 vagy újabb ajánlott.

Mi az a “search by attribute java”?

A Search by attribute java lehetővé teszi, hogy a dokumentumokat egyedi metaadatok (attribútumok) alapján kérdezze le, nem csak a szöveges tartalmuk alapján. Ez a megközelítés jelentősen szűkíti a találati halmazt, csökkenti a hálózati forgalmat, és felgyorsítja a válaszidőket, mivel a motor az attribútumszűrőket a teljes szöveges keresés előtt értékeli ki.

Miért használjunk dinamikus metaadat címkézést?

A dinamikus metaadat címkézés lehetővé teszi, hogy a dokumentumokhoz egyedi attribútumokat rendeljünk, frissítsünk és kezeljünk újraindexelés nélkül, rugalmas osztályozást biztosítva, amely alkalmazkodik a változó üzleti szabályokhoz, javítja a keresés hatékonyságát, és csökkenti a költséges adatátvitelek szükségességét nagy adattárakban, miközben biztosítja a megfelelőséget és auditálhatóságot.

  • Dinamikus kategorizálás – tartsa a metaadatokat szinkronban a változó üzleti szabályokkal.
  • Gyorsabb szűrés – az attribútumszűrőket a teljes szöveges keresés előtt értékeli ki, ezáltal növelve a válaszidőket.
  • Megfelelőség nyomon követése – címkézze a dokumentumokat megőrzési szabályok vagy auditkövetelmények szerint.
  • Kötegelt attribútumfrissítés – egy műveletben módosítson sok dokumentumot újraindexelés nélkül.

Előfeltételek

  • Java 8+ (JDK 8 vagy újabb)
  • GroupDocs.Search for Java könyvtár (lásd alább a Maven beállítást)
  • Alapvető ismeretek a Java gyűjteményekkel és a kivételkezeléssel kapcsolatban

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

Maven beállítás

Add the GroupDocs repository and dependency to your pom.xml:

<repositories>
    <repository>
        <id>groupdocs-releases</id>
        <url>https://repo.groupdocs.com/maven</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-search</artifactId>
        <version>25.4</version>
    </dependency>
</dependencies>

Közvetlen letöltés

Alternatívaként töltse le a legújabb verziót a GroupDocs.Search for Java releases oldalról. Ha nem szeretne Maven‑t használni, szerezze be a JAR‑t a GroupDocs weboldalról.

Licenc beszerzése

  • Kezdje egy ingyenes próba verzióval a funkciók felfedezéséhez.
  • Kiterjesztett használathoz szerezzen ideiglenes vagy teljes licencet a licencoldalon keresztül.

Alap inicializálás

// Initialize the search index folder
String indexFolder = "C:/search_index";
Index index = new Index(indexFolder);

// Apply license if you have one
License license = new License();
license.setLicense("C:/licenses/groupdocs.lic");

Hogyan módosítsuk a dokumentum attribútumait (kötegelt frissítés)

A dokumentum attribútumainak az indexelés után történő módosításához használhatja az AttributeChangeBatch API‑t tömeges frissítések alkalmazásához. Ez a megközelítés egyetlen tranzakcióban frissíti a kiválasztott fájlok metaadatait, elkerülve a teljes gyűjtemény újraindexelésének terheit, és megőrizve a teljes szöveges indexet.

Közvetlen válasz: Használja az AttributeChangeBatch‑t, hogy a metaadatok hozzáadását, törlését vagy cseréjét egyetlen atomikus műveletbe csoportosítsa, majd kötegét commit-olja az indexbe. Ez egy lépésben frissíti sok dokumentum attribútumait, miközben megőrzi a meglévő teljes szöveges indexet.

1. lépés: dokumentumok hozzáadása az indexhez

index.add("C:/docs/contract1.pdf");
index.add("C:/docs/report2.docx");

2. lépés: indexelt dokumentum információinak lekérése

DocumentInfo info = index.getDocumentInfo("contract1.pdf");
System.out.println("Current attributes: " + info.getAttributes());

3. lépés: dokumentum attribútumok kötegelt frissítése

Az AttributeChangeBatch osztály több attribútummódosítást csoportosít egyetlen atomikus műveletbe, csökkentve az I/O terhelést és biztosítva az index konzisztenciáját.

AttributeChangeBatch batch = new AttributeChangeBatch();
batch.addAttribute("contract1.pdf", "department", "Legal");
batch.removeAttribute("report2.docx", "confidential");
batch.replaceAttribute("report2.docx", "status", "archived", "active");
index.applyAttributeChanges(batch);

4. lépés: keresés attribútumszűrőkkel

SearchOptions options = new SearchOptions();
options.addAttributeFilter("department", "Legal");
SearchResult result = index.search("agreement", options);
System.out.println("Found " + result.getCount() + " legal documents.");

Hogyan adjunk attribútumokat az indexelés során

Az attribútumok az indexelés során történő hozzáadása biztosítja, hogy minden dokumentum már a kezdetektől a szükséges metaadatokkal legyen gazdagítva. A FileIndexing esemény kezelésével programozottan csatolhat kulcs‑érték párokat minden DocumentInfo objektumhoz, mielőtt a motor feldolgozná a fájlt, ezáltal garantálva az attribútumok konzisztens elérhetőségét a későbbi keresésekhez.

Közvetlen válasz: Iratkozzon fel a FileIndexing eseményre a fájlok hozzáadása előtt; az eseménykezelőben hívja meg a addAttribute metódust a DocumentInfo objektumon, hogy kulcs‑érték párokat csatoljon, majd engedje, hogy az index folytassa a fájl feldolgozását.

1. lépés: feliratkozás a FileIndexing eseményre

A FileIndexing esemény minden fájlhoz aktiválódik, amikor az indexhez kerül, lehetővé téve egyedi metaadatok beillesztését.

index.getEvents().FileIndexing.add(event -> {
    // Example: set department based on folder name
    String folder = new File(event.getFilePath()).getParentFile().getName();
    event.getDocumentInfo().addAttribute("department", folder);
});

2. lépés: dokumentumok indexelése

index.add("C:/incoming/hr/policy.pdf");
index.add("C:/incoming/finance/budget.xlsx");

Gyakorlati alkalmazások

  1. Dokumentumkezelő rendszerek – automatikusan címkézik a fájlokat a befogadáskor, lehetővé téve a pillanatnyi szűrőnavigációt.
  2. Nagy tartalomarchívumok – kombinálja az attribútumszűrőket a teljes szöveges kereséssel, hogy a lekérdezési időt percekről másodpercekre csökkentse több gigabájtos gyűjteményeknél.
  3. Megfelelőség és jelentéskészítés – dinamikusan rendeli hozzá a megőrzési időszakokat, bizalmasági szinteket vagy audit jelzőket, amelyeket szabályozási ellenőrzésekhez lehet lekérdezni.

Teljesítmény szempontok

  • Memóriakezelés – figyelje a JVM heapet és állítsa be a -Xmx‑et (pl. -Xmx4g 2 GB-nál nagyobb indexekhez).
  • Kötegelt feldolgozás – csoportosítsa az attribútumváltozásokat az AttributeChangeBatch‑szel a lemezírások minimalizálása érdekében; ossza fel a 10 000-nél nagyobb módosításokat tartalmazó kötegeket a tranzakció időtúllépés elkerülése végett.
  • Könyvtár frissítések – maradjon a legújabb GroupDocs.Search kiadáson; a 25.4-es verzió 30 %-os sebességnövekedést hoz az attribútumszűrő kiértékelésében a 24.x‑hez képest.

Gyakori problémák és megoldások

ProblémaMiért fordul előHogyan javítható
Attribútumok nem alkalmazvaAz eseménykezelő nincs regisztrálva az indexelés előttGyőződjön meg róla, hogy a index.getEvents().FileIndexing.add(...) az index.add(...) hívások előtt fut.
A keresés nem ad eredménytAz attribútum név eltérése (kis‑nagybetű érzékeny)Használjon pontos attribútum neveket a szűrők létrehozásakor (createAttribute("main")).
Memóriahiányos hibák nagy kötegeknélTúl sok változás egyetlen kötegbenOssza fel a nagy frissítéseket kisebb AttributeChangeBatch példányokra (pl. 5 000 dokumentum kötegenként).
A licenc nem ismerhető felPróba JAR használata licencfájl alkalmazása nélkülHívja meg a License license = new License(); license.setLicense("path/to/license.file"); kódot bármely index művelet előtt.

Gyakran feltett kérdések

Q: Melyek a előfeltételek a GroupDocs.Search Java-ban való használatához?
A: Java 8+, a GroupDocs.Search könyvtár, és az indexelési koncepciók alapvető ismerete.

Q: Hogyan telepíthetem a GroupDocs.Search‑t Maven‑en keresztül?
A: Adja hozzá a Maven beállítási szakaszban bemutatott tárolót és függőséget a pom.xml‑hez.

Q: Módosíthatok-e attribútumokat a dokumentumok indexelése után?
A: Igen, használja az AttributeChangeBatch‑t a dokumentum attribútumok kötegelt frissítéséhez újraindexelés nélkül.

Q: Mi a teendő, ha az indexelési folyamat lassú?
A: Optimalizálja a JVM memória beállításait (-Xmx), használjon kötegelt frissítéseket, és frissítse a legújabb könyvtárverzióra a teljesítményjavításokért.

Q: Hol találok további forrásokat a GroupDocs.Search for Java‑ról?
A: Látogassa meg a hivatalos dokumentációt vagy böngéssze a közösségi fórumokat.

Erőforrások


Last Updated: 2026-09-21
Tested With: GroupDocs.Search 25.4 for Java
Author: GroupDocs

<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>
import com.groupdocs.search.Index;

// Initialize an index in a specified directory
Index index = new Index("YOUR_OUTPUT_DIRECTORY/ChangeAttributes");
index.add("YOUR_DOCUMENT_DIRECTORY");
import com.groupdocs.search.results.DocumentInfo;

DocumentInfo[] documents = index.getIndexedDocuments();
import com.groupdocs.search.common.AttributeChangeBatch;
import com.groupdocs.search.SearchOptions;

AttributeChangeBatch batch = new AttributeChangeBatch();
batch.addToAll("public"); // Add 'public' to all documents
batch.remove(documents[0].getFilePath(), "public"); // Remove 'public' from a specific document
batch.add(documents[0].getFilePath(), "main", "key"); // Add 'main' and 'key' attributes

// Apply changes
index.changeAttributes(batch);
import com.groupdocs.search.results.SearchResult;

SearchOptions options = new SearchOptions();
options.setSearchDocumentFilter(SearchDocumentFilter.createAttribute("main"));
String query = "length";
SearchResult result = index.search(query, options); // Perform the search
import com.groupdocs.search.events.EventHandler;
import com.groupdocs.search.events.FileIndexingEventArgs;

index.getEvents().FileIndexing.add(new EventHandler<FileIndexingEventArgs>() {
    @Override
    public void invoke(Object sender, FileIndexingEventArgs args) {
        if (args.getDocumentFullPath().endsWith("SampleDocument.pdf")) {
            args.setAttributes(new String[] { "main", "key" });
        }
    }
});
index.add("YOUR_DOCUMENT_DIRECTORY");

Kapcsolódó oktatóanyagok