Szingularis és többes számú alakok generálása Java-ban a GroupDocs.Search segítségével
Ha szingularis és többes számú alakokat kell generálni Java-ban, egy egyedi szóalak‑szolgáltató a kulcs ahhoz, hogy a kereső- vagy szövegelemző motorod megértse egy kifejezés minden változatát. Ebben az útmutatóban végigvezetünk egy ilyen szolgáltató felépítésén a GroupDocs.Search Java API-val, így az alkalmazásod automatikusan egyezni fog a „cat”, „cats”, „city” és „citis” szavakkal extra erőfeszítés nélkül.
Gyors válaszok
- Mit csinál egy szóalak‑szolgáltató? Alternatív alakokat (szingularis, többes szám, stb.) generál egy adott szóból, hogy a keresések minden változatot megtalálhassanak.
- Melyik könyvtár szükséges? GroupDocs.Search for Java (25.4 vagy újabb verzió).
- Szükségem van licencre? Egy ingyenes próba a kiértékeléshez elegendő; a termeléshez állandó licenc szükséges.
- Melyik Java verzió támogatott? JDK 8 vagy újabb.
- Hány sor kódra van szükség? Körülbelül 30 sor egy egyszerű szolgáltató implementációhoz.
Mi az a „Create Word Forms Provider” funkció?
A create word forms provider komponens egy egyedi osztály, amely megvalósítja az IWordFormsProvider interfészt. Egy szót kap bemenetként, és egy tömböt ad vissza a lehetséges alakokról – szingularis, többes szám vagy egyéb nyelvi variációk – a általad definiált szabályok alapján. Ez lehetővé teszi, hogy a keresőindex a „cat” és a „cats” szavakat ekvivalensnek tekintse, ezáltal növelve a találati lefedettséget a pontosság rovására nem menve.
Miért használjuk a GroupDocs.Search‑t szóalak‑generáláshoz?
- Beépített kiterjeszthetőség: Csatold a saját szolgáltatódat közvetlenül az indexelési csővezetékhez.
- Teljesítmény‑optimalizált: Nagy indexeket hatékonyan kezel, és az eredményeket gyorsabbá teheted a gyorsítótárazással.
- Kereszt‑nyelvi támogatás: A koncepciók .NET-re és más platformokra is alkalmazhatók.
Előfeltételek
Mielőtt megvalósítanád a create word forms provider-t, győződj meg róla, hogy rendelkezel a következőkkel:
- Maven telepítve, és JDK 8 vagy újabb a gépeden.
- Alapvető ismeretekkel a Java fejlesztésről és a Maven
pom.xmlkonfigurációjáról. - Hozzáférés a GroupDocs.Search Java könyvtárhoz (25.4 vagy újabb verzió).
A GroupDocs.Search beállítása Java-hoz
Maven konfiguráció
Add the repository and dependency to your pom.xml file exactly as shown below:
<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>
Közvetlen letöltés
Alternatív megoldásként töltsd le a legújabb JAR-t a hivatalos kiadási oldalról: GroupDocs.Search for Java releases.
Licenc beszerzési lépések
- Ingyenes próba: Regisztrálj egy próbaverzióra a fő funkciók felfedezéséhez.
- Ideiglenes licenc: Kérj egy ideiglenes kulcsot a kiterjesztett teszteléshez.
- Vásárlás: Szerezz be egy kereskedelmi licencet a korlátlan termelési használathoz.
Alap inicializálás és beállítás
Az alábbi kódrészlet bemutatja, hogyan hozhatsz létre egy indexet – a kiindulópontot a dokumentumok és szóalak‑logika hozzáadásához:
import com.groupdocs.search.*;
public class SearchSetup {
public static void main(String[] args) {
// Initialize an index
Index index = new Index("path/to/index");
System.out.println("GroupDocs.Search initialized successfully.");
}
}
Implementációs útmutató
Az alábbiakban végigvezetünk a lépéseken, hogy create word forms provider-t hozzunk létre, amely egyszerű szingularis‑többes és többes‑szingularis átalakításokat kezel.
A SimpleWordFormsProvider implementálása
Áttekintés
Az egyedi szolgáltatónk a következőket fogja:
- Levágja a végződő „es” vagy „s” betűket a szingularis forma kitalálásához.
- A végződő „y” betűt „is”‑re cseréli a többes számú forma előállításához (pl. „city” → „citis”).
- Hozzáfűzi az „s” és „es” végződéseket az alap többes számú jelöltek generálásához.
1. lépés – Az osztály vázának létrehozása
Kezdd egy olyan osztály definiálásával, amely megvalósítja az IWordFormsProvider‑t. Hagyd változatlanul az importálásokat:
import com.groupdocs.search.dictionaries.IWordFormsProvider;
import java.util.ArrayList;
public class SimpleWordFormsProvider implements IWordFormsProvider {
2. lépés – A getWordForms implementálása
Add the method that builds the list of possible forms. This block contains the core logic; you can extend it later to cover more complex rules.
@Override
public final String[] getWordForms(String word) {
// Initialize a list to store generated word forms
ArrayList<String> result = new ArrayList<>();
// Singular form for words ending in 'es'
if (word.length() > 2 && word.toLowerCase().endsWith("es")) {
result.add(word.substring(0, word.length() - 2));
}
// Singular form for words ending in 's'
if (word.length() > 1 && word.toLowerCase().endsWith("s")) {
result.add(word.substring(0, word.length() - 1));
}
// Plural form by replacing 'y' with 'is'
if (word.length() > 1 && word.toLowerCase().endsWith("y")) {
result.add(word.substring(0, word.length() - 1).concat("is"));
}
// Basic plural forms
result.add(word.concat("s"));
result.add(word.concat("es"));
// Convert list to array and return
return result.toArray(new String[0]);
}
}
A logika magyarázata
- Szingularizálás: Felismeri a gyakori többes számú végződéseket (
es,s) és eltávolítja őket a szótő közelítéséhez. - Többes szám: A
y‑ra végződő főneveketis‑re cseréli, egy egyszerű szabály, amely sok angol szó esetén működik. - Végződés hozzáadása: Hozzáadja az
sésesvégződéseket a szabályos többes számú formák lefedéséhez, amelyeket az előző ellenőrzések esetleg nem ragadnak meg.
Hibaelhárítási tippek
- Kis- és nagybetű érzékenység: A metódus a
toLowerCase()‑t használja az összehasonlításhoz, biztosítva, hogy a „Cats” és a „cats” ugyanúgy viselkedjen. - Szélsőséges esetek: A szuffixum hosszánál rövidebb szavakat figyelmen kívül hagyja, hogy elkerülje az üres karakterláncok visszaadását.
- Teljesítmény: Nagy szókészletek esetén fontold meg az eredmények gyorsítótárazását egy
ConcurrentHashMap‑ben.
Gyakorlati alkalmazások
Egy create word forms provider implementálása több valós helyzetben is növelheti a hatékonyságot:
- Keresőmotorok: A „mouse” beíró felhasználók számára is meg kell jelenjenek a „mice” szót tartalmazó dokumentumok. Egy szolgáltató képes generálni ilyen rendhagyó alakokat.
- Szövegelemző eszközök: A sentiment vagy entitás kinyerés megbízhatóbbá válik, ha minden szóvariáns fel van ismerve.
- Tartalomkezelő rendszerek: Az automatikus címke generálás tartalmazhat többes számú szinonimákat, javítva az SEO‑t és a belső linkelést.
Teljesítménybeli megfontolások
Amikor a szolgáltatót egy termelési rendszerbe ágyazod, tartsd szem előtt ezeket a tippeket:
- Gyakran használt alakok gyorsítótárazása: Tárold az eredményeket memóriában, hogy elkerüld ugyanazon szó újbóli kiszámítását.
- JVM heap figyelése: Nagy indexek növelhetik a memória nyomását; ennek megfelelően állítsd be a
-Xmx‑et. - Hatékony gyűjtemények használata: Az
ArrayListkis halmazokra megfelelő, de több ezer alak esetén érdemes aHashSet‑et használni a duplikátumok gyors eltávolításához.
Legjobb gyakorlatok
- Tartsd a könyvtárat naprakészen, hogy élvezhesd a teljesítményjavító javításokat.
- Profilozd a szolgáltatót valós lekérdezési terheléssel, hogy időben felismerd a szűk keresztmetszeteket.
Következtetés
Most már megtanultad, hogyan generálj szingularis és többes számú alakokat Java-ban egy egyedi SimpleWordFormsProvider segítségével a GroupDocs.Search használatával. Ez a könnyű komponens drámaian javíthatja a keresési eredmények relevanciáját és a nyelvi elemzés pontosságát számos alkalmazásban.
Következő lépések:
- Kísérletezz összetettebb nyelvi szabályokkal (rendhagyó többes számok, szótövezés).
- Integráld a szolgáltatót egy indexelési csővezetékbe, és mérd a visszahívási javulást.
- Fedezd fel a GroupDocs.Search további funkcióit, mint a szinonima szótárak és egyedi elemzők.
Cselekvésre felhívás: Próbáld meg ma hozzáadni a SimpleWordFormsProvider‑t a saját projektedhez, és nézd meg, hogyan gazdagítja a keresési élményt!
GyIK szekció
1. Mi a GroupDocs.Search for Java?
Ez egy erőteljes könyvtár, amely teljes szöveges keresést, indexelést és nyelvi funkciókat kínál – beleértve az egyedi szóalak‑szolgáltatók csatlakoztatásának lehetőségét.
2. Hogyan működik a SimpleWordFormsProvider?
Egyszerű végződés‑alapú szabályok alkalmazásával generál alternatív alakokat (eltávolítja az „s/es” végződést, a „y” betűt „is”‑re cseréli, és hozzáfűzi az „s/es” végződéseket).
3. Testreszabhatom a szóalak‑generálási szabályokat?
Természetesen. Módosítsd a getWordForms metódust, hogy tartalmazzon rendhagyó alakokat, helyspecifikus szabályokat vagy külső szótárakkal való integrációt.
4. Milyen gyakori alkalmazások vannak erre a funkcióra?
A keresőmotorok, szövegelemző csővezetékek és CMS platformok profitálnak a szingularis/többes számú változatok felismeréséből.
5. Szükségem van kereskedelmi licencre a termelési használathoz?
Igen – míg a próba lehetővé teszi az API felfedezését, egy megvásárolt licenc eltávolítja a használati korlátokat és támogatást biztosít.
Utolsó frissítés: 2026-02-21
Tesztelve: GroupDocs.Search 25.4 (Java)
Szerző: GroupDocs