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
FileIndexingesemé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
- Dokumentumkezelő rendszerek – automatikusan címkézik a fájlokat a befogadáskor, lehetővé téve a pillanatnyi szűrőnavigációt.
- 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.
- 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.-Xmx4g2 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éma | Miért fordul elő | Hogyan javítható |
|---|---|---|
| Attribútumok nem alkalmazva | Az eseménykezelő nincs regisztrálva az indexelés előtt | Győ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ényt | Az 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él | Túl sok változás egyetlen kötegben | Ossza fel a nagy frissítéseket kisebb AttributeChangeBatch példányokra (pl. 5 000 dokumentum kötegenként). |
| A licenc nem ismerhető fel | Próba JAR használata licencfájl alkalmazása nélkül | Hí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
- Dokumentáció: GroupDocs.Search for Java Docs
- API referencia: API Reference
- Letöltés: Latest Releases
- GitHub: GitHub GroupDocs.Search
- Ingyenes támogatási fórum: GroupDocs Forums
- Ideiglenes licenc: License Page
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");