Hogyan keressünk kifejezést helyettesítő karakterekkel a GroupDocs.Search for Java-ban

A modern dokumentum‑központú alkalmazásokban a kifejezés keresése gyorsan és pontosan a felhasználói élmény sorsdöntő tényezője. Legyen szó tudásbázis, e‑kereskedelmi katalógus vagy megfelelőségi tároló építéséről, a pontos kifejezés – vagy annak rugalmas változata – megtalálása a felhasználókat produktívvá teszi és csökkenti a támogatási terheket. Ez az útmutató végigvezeti a GroupDocs.Search for Java telepítésén, egy keresőindex létrehozásán, dokumentumok betöltésén, valamint a pontos kifejezést és a helyettesítő karakterekkel bővített lekérdezéseket, mindezt egyértelmű, termelésre kész kódrészletekkel.

Gyors válaszok

  • Mi a kifejezéskeresés elsődleges előnye? A szavak sorrendjének és közelségének pontos egyezése, garantálva, hogy csak a pontos sorozatot tartalmazó dokumentumok kerülnek visszaadásra.
  • Használhatók helyettesítő karakterek egy kifejezésen belül? Igen – a helyettesítő karakterek lehetővé teszik szavak kihagyását vagy helyettesítését, miközben megőrzik a teljes sorrendet.
  • Szükségem van licencre fejlesztéshez? Egy ingyenes próba a teszteléshez megfelelő; a teljes licenc a termelési környezethez kötelező.
  • Melyik Maven verziót használjam? A legújabb GroupDocs.Search for Java kiadás (pl. 25.4 a írás időpontjában).
  • Alkalmas ez a megközelítés nagy dokumentumkészletekre? Teljesen – a GroupDocs.Search több százezer dokumentumot is kezel, almásodperces lekérdezési késleltetéssel, ha az index optimalizált.

Mi az a „kifejezés keresése”?

A kifejezés keresése egy adott szósorozat megtalálását jelenti egy dokumentumban.
Amikor egy kifejezés lekérdezést hajtasz végre, a motor ellenőrzi, hogy a szavak pontosan ebben a sorrendben és a meghatározott közelségben jelennek meg, ezzel kizárva a releváns találatokat, amelyek ugyanazokat a szavakat más kontextusban tartalmazzák. Ez a kifejezéskeresést ideálissá teszi jogi záradékok, termékkódok vagy bármely olyan szöveg megtalálásához, ahol a sorrend számít.

Miért használjuk a GroupDocs.Search-t kifejezés- és helyettesítő karakteres lekérdezésekhez?

A GroupDocs.Search magas áteresztőképességű indexelést biztosít akár 1 millió dokumentumig, miközben a tipikus szerverhardveren almásodperces lekérdezési válaszidőket tart. A lekérdezési nyelv támogatja a pontos kifejezéseket, az egyszerű * és ? helyettesítő karaktereket, valamint fejlett mintákat, például numerikus tartományokat (*2~5). A könyvtár bármely Java alkalmazással integrálható Maven vagy közvetlen JAR letöltés útján, és Java 8+ környezetben külső szolgáltatások nélkül fut.

Előfeltételek

  • Java 8 vagy újabb (Java 11 LTS ajánlott).
  • Maven 3 vagy újabb (ha a függőségkezelést részesíted előnyben).
  • Alapvető ismeretek a Java projekt struktúrájáról és az objektum‑orientált koncepciókról.

A GroupDocs.Search beállítása Java-hoz

Maven használata

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

<!-- Maven repository -->
<repositories>
    <repository>
        <id>groupdocs-releases</id>
        <url>https://repository.groupdocs.com/release</url>
    </repository>
</repositories>

<!-- GroupDocs.Search dependency -->
<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-search</artifactId>
    <version>25.4</version>
</dependency>

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 megszerzése

  • Ingyenes próba: Ideális gyors kísérletekhez; 100 MB indexelt adat korláttal.
  • Ideiglenes licenc: Kérj 30 napos értékelő kulcsot a GroupDocs portálról.
  • Teljes licenc: Szükséges a termelési használathoz és a korlátlan indexelési kapacitáshoz.

Alapvető inicializálás és beállítás

Hozz létre egy mappát, amely az indexfájlokat tárolja, és példányosítsd az Index objektumot. Az Index osztály a lemezen tárolt kereshető indexet képviseli, és módszereket biztosít a dokumentumok hozzáadásához, frissítéséhez és lekérdezéséhez.

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

Add the documents you want to make searchable:

String indexFolder = "YOUR_OUTPUT_DIRECTORY/PhraseSearch";
Index index = new Index(indexFolder);

Hogyan keressünk kifejezést helyettesítő karakterekkel a GroupDocs.Search-ban

Ez a szakasz három szintű kifejezéskeresést mutat be – pontos egyezés, egyszerű helyettesítő karakter és fejlett helyettesítő karakter minták – bemutatva, hogyan hozhatsz létre egy indexet, adhatod hozzá a dokumentumokat, és hajthatod végre minden lekérdezést tömör Java kóddal. A példák mind szövegalapú lekérdezéseket, mind objektumalapú lekérdezésépítést illusztrálnak, lehetővé téve a fejlesztők számára, hogy rugalmas keresési képességeket integráljanak alkalmazásaikba.

Egyszerű kifejezés keresés

Áttekintés

Használd ezt a megközelítést, ha pontos egyezésre van szükséged egy szósorozatban, például jogi záradék vagy termék modell szám esetén.

Közvetlen válasz

Töltsd be az indexet, hívd meg a search metódust idézőjelek közé tett kifejezéssel (pl. "quick brown fox"), és a motor csak azokat a dokumentumokat adja vissza, amelyek pontosan ezt a sorozatot tartalmazzák, megőrizve a szavak sorrendjét és a szóközöket. A lekérdezés ezredmásodperc alatt fut, még több százezer fájlt tartalmazó indexeken is.

1. lépés: Index létrehozása

String documentsFolder = "YOUR_DOCUMENT_DIRECTORY";
index.add(documentsFolder);

2. lépés: Dokumentumok hozzáadása az indexhez

Index index = new Index(indexFolder);

3. lépés: Keresés egy konkrét kifejezésre (szöveges forma)

index.add(documentsFolder);

4. lépés: Objektumalapú lekérdezések (pontos kifejezés keresése)

String queryText = "\"sollicitudin at ligula\"";
SearchResult resultText = index.search(queryText);

Kifejezés keresés helyettesítő karakterekkel

Áttekintés

A helyettesítő karakterek (* tetszőleges számú karakter, ? egyetlen karakter) lehetővé teszik, hogy kihagyj változó szavakat, miközben a környező sorrendet továbbra is érvényesíted.

Közvetlen válasz

Helyezz egy helyettesítő karakter tokent (*) egy idézőjelek közé tett kifejezésbe – pl. "quick * fox" – hogy bármely szó(ak) illeszkedjenek a quick és fox között. A motor a lekérdezés időpontjában kibővíti a helyettesítő karaktert, csak azokat az indexelt kifejezéseket vizsgálja, amelyek megfelelnek a mintának, így a teljesítmény hasonló marad egy egyszerű kifejezés lekérdezéshez.

1. lépés: Index létrehozása

(Ugyanaz, mint az egyszerű kifejezés keresés.)

2. lépés: Dokumentumok hozzáadása az indexhez

(Ugyanaz, mint az egyszerű kifejezés keresés.)

3. lépés: Szöveges keresés helyettesítő karakterekkel

SearchQuery word1 = SearchQuery.createWordQuery("sollicitudin");
SearchQuery word2 = SearchQuery.createWordQuery("at");
SearchQuery word3 = SearchQuery.createWordQuery("ligula");
SearchQuery queryObject = SearchQuery.createPhraseSearchQuery(word1, word2, word3);
SearchResult resultObject = index.search(queryObject);

4. lépés: Objektumalapú lekérdezések helyettesítő karakterekkel (Wildcard Search Java)

String queryText = "\"sollicitudin *0~~3 ligula\"";
SearchResult resultText = index.search(queryText);

Fejlett helyettesítő karakter keresés

Áttekintés

Kombináld a numerikus tartományokat, opcionális karaktereket és egyedi regex‑szerű mintákat összetett egyezéshez, például verziószámok vagy termékkódok esetén.

Közvetlen válasz

Használd a kiterjesztett helyettesítő karakter szintaxist *min~max a megengedett szavak közti távolság tartományának meghatározásához, vagy ? egyetlen karakter egyezéséhez. Például a "error *2~5 code" megtalálja az error szót, amelyet két‑öt szó követ, majd a code. Ez a pontosság csökkenti a hamis pozitív találatokat, miközben rugalmasságot biztosít.

1. lépés: Index létrehozása

(Ismételve a tisztaság kedvéért.)

2. lépés: Dokumentumok hozzáadása az indexhez

(Ismételve.)

3. lépés: Szöveges keresés összetett helyettesítő karakter mintákkal

SearchQuery word1 = SearchQuery.createWordQuery("sollicitudin");
SearchQuery wildcard2 = SearchQuery.createWildcardQuery(0, 3);
SearchQuery word3 = SearchQuery.createWordQuery("ligula");
SearchQuery queryObject = SearchQuery.createPhraseSearchQuery(word1, wildcard2, word3);
SearchResult resultObject = index.search(queryObject);

4. lépés: Objektumalapú lekérdezések fejlett helyettesítő karakterekkel

String queryText = "\"sollicitudin *0~~3 ?(0~4)la\"";
SearchResult resultText = index.search(queryText);

Gyakorlati alkalmazások

  • Tartalomkezelő rendszerek: A szerkesztők pontos záradékokat vagy rugalmas kivonatokat találhatnak anélkül, hogy manuálisan átnéznék a több száz oldalt.
  • E‑kereskedelmi katalógusok: A vásárlók termékeket találnak még akkor is, ha kihagynak egy leíró szót vagy szinonimát használnak, a helyettesítő karakter tolerancia miatt.
  • Jogi és megfelelőség: Gyorsan elkülönítheti a szerződéses nyelvezetet, amely kisebb eltérésekkel jelenhet meg a megállapodásokban.

Teljesítményfontosságú szempontok

  • Keresőindex létrehozása csak egyszer egy stabil dokumentumkészlethez; ugyanazt az Index példányt használd minden lekérdezéshez.
  • Dokumentumok fokozatos hozzáadása új fájlok érkezésekor – kerüld az egész index újraépítését a CPU terhelés alacsonyan tartása érdekében.
  • Tervezd meg a pontos helyettesítő karakter mintákat; a szélesebb minták (*) növelik a kifejezések kibővítéseinek számát és CPU terhelést okozhatnak.
  • Hívd meg időnként a index.optimize()-t (ha támogatott), hogy tömörítsd az indexet és a memóriahasználatot kordában tartsd.

Gyakori problémák és megoldások

ProblémaMegoldás
Nincs eredmény a helyettesítő karakteres lekérdezésreEllenőrizd a helyettesítő karakter szintaxisát (*min~max) és győződj meg arról, hogy a cél szavak a meghatározott távolságon belül léteznek.
Az index elavulttá válik fájlfrissítések utánHasználd a index.add(updatedFolder) vagy a fokozatos frissítési API-t, hogy csak a módosított fájlokat frissítsd.
Nagy memóriahasználat nagy adathalmazok eseténNöveld a JVM heap méretét (-Xmx4g vagy nagyobb) és fontold meg az index több shardra bontását a párhuzamos feldolgozáshoz.

Gyakran ismételt kérdések

Q: Mi a különbség a helyettesítő karakter és a kifejezés keresés között?
A: A kifejezés keresés pontos szórendet és szóközöket igényel, míg a helyettesítő karakter lehetővé teszi szavak helyettesítését vagy kihagyását a sorrenden belül, rugalmas egyezést biztosítva.

Q: Használhatok helyettesítő karaktereket numerikus adatok keresésénél?
A: Igen – a helyettesítő karakter tartomány paraméterek (*min~max) számokra és szavakra egyaránt működnek, lehetővé téve például a "version *1~3" lekérdezést.

Q: Hogyan kezeljem a nagyon nagy dokumentumgyűjteményeket?
A: Tartsd optimalizálva az indexet, végezz fokozatos frissítéseket, és készíts specifikus helyettesítő karakter mintákat a kifejezések kibővítésének korlátozásához. A GroupDocs.Search 1 millió dokumentumot képes indexelni, miközben a lekérdezési késleltetés 200 ms alatt marad standard hardveren.

Q: Alkalmas a GroupDocs.Search valós‑idő keresési forgatókönyvekhez?
A: Teljesen – miután az index felépült, a lekérdezések ezredmásodperc alatt futnak, így ideálisak interaktív keresőmezők és automatikus kiegészítés funkciók számára.

Q: Integrálhatom ezt a könyvtárat egy meglévő Java projektbe?
A: Igen. Add hozzá a Maven függőséget vagy a JAR-t, példányosítsd az Index-et a bemutatott módon, és készen állsz a lekérdezésre anélkül, hogy módosítanád a meglévő kódot.


Utoljára frissítve: 2026-05-28
Tesztelt verzió: GroupDocs.Search 25.4 for Java
Szerző: GroupDocs

double word1 = SearchQuery.createWordQuery("sollicitudin");
SearchQuery wildcard2 = SearchQuery.createWildcardQuery(0, 3);

WordPattern pattern = new WordPattern();
pattern.appendWildcard(0, 4);
pattern.appendString("la");

SearchQuery wordPattern3 = SearchQuery.createWordPatternQuery(pattern);
SearchQuery queryObject = SearchQuery.createPhraseSearchQuery(word1, wildcard2, wordPattern3);
SearchResult resultObject = index.search(queryObject);

Kapcsolódó oktatóanyagok