.# GroupDocs.Search for Java का उपयोग करके कैरेक्टर रिकग्निशन के साथ इंडेक्स कैसे बनाएं
आधुनिक डॉक्यूमेंट‑हेवी एप्लिकेशन्स में, इंडेक्स कैसे बनाएं जो आपके टेक्स्ट की बारीकियों—जैसे हाइफ़न, अंडरस्कोर, या भाषा‑विशिष्ट प्रतीकों—को सम्मान करता हो, तेज़ और सटीक रिट्रीवल के लिए आवश्यक है। इस ट्यूटोरियल में हम GroupDocs.Search for Java में कैरेक्टर रिकग्निशन को कॉन्फ़िगर करने के चरणों से गुजरेंगे, जिसमें रेगुलर कैरेक्टर्स (letters, digits, underscores) और ब्लेंडेड कैरेक्टर्स (जैसे हाइफ़न) दोनों को कवर किया गया है। अंत तक, आप OCR या इमेज‑सर्च परिदृश्य की सटीक जरूरतों के अनुसार एक इंडेक्स तैयार कर पाएँगे, चाहे आप लीगल केस नंबर, सोर्स‑कोड रिपॉज़िटरीज़, या मल्टीलिंगुअल PDFs को इंडेक्स कर रहे हों।
त्वरित उत्तर
- “create custom search index” का क्या मतलब है? इसका अर्थ है एक इंडेक्स को इस तरह कॉन्फ़िगर करना कि विशिष्ट प्रतीकों को अक्षर या ब्लेंडेड कैरेक्टर माना जाए, न कि उन्हें अनदेखा किया जाए।
- कौन सी लाइब्रेरी उपयोग की गई है? GroupDocs.Search for Java (v25.4 at the time of writing).
- क्या मुझे लाइसेंस चाहिए? विकास के लिए एक फ्री ट्रायल काम करता है; प्रोडक्शन के लिए एक पेड लाइसेंस आवश्यक है।
- क्या मैं PDFs और इमेज दोनों को इंडेक्स कर सकता हूँ? हाँ—GroupDocs.Search उचित कॉन्फ़िगरेशन पर इमेज और PDFs पर OCR का समर्थन करता है।
- क्या Maven आवश्यक है? Maven डिपेंडेंसी मैनेजमेंट का अनुशंसित तरीका है, लेकिन आप Gradle या मैन्युअल JARs भी उपयोग कर सकते हैं।
कस्टम सर्च इंडेक्स क्या है?
एक कस्टम सर्च इंडेक्स आपको यह निर्धारित करने की अनुमति देता है कि सर्च इंजन कैरेक्टर को कैसे व्याख्या करता है। डिफ़ॉल्ट रूप से, कई प्रतीकों को अनदेखा किया जाता है, जिससे केस नंबर (2023-AB-456) या कोड स्निपेट (my_variable) जैसी चीज़ों के लिए मैच मिस हो सकते हैं। अल्फाबेट डिक्शनरी को समायोजित करने से आपको यह पूर्ण नियंत्रण मिलता है कि इंजन कौन सा टेक्स्ट सर्चेबल मानता है।
कानूनी केस नंबरों के लिए रेगुलर और ब्लेंडेड कैरेक्टर्स को क्यों कॉन्फ़िगर करें?
- रेगुलर कैरेक्टर्स (letters, digits, underscores) अलग-अलग टोकनाइज़ होते हैं, जिससे पहचानकर्ताओं के लिए एक्ज़ैक्ट‑मैच सर्च संभव होती है।
- ब्लेंडेड कैरेक्टर्स (hyphens, slashes) संबंधित टोकन को साथ रखते हैं, जिससे केस नंबर, प्रोडक्ट कोड या फ़ाइल पाथ्स का अनचाहा विभाजन नहीं होता।
- यह कॉन्फ़िगरेशन सर्च इंडेक्स को ऑप्टिमाइज़ करता है, टोकन फ्रैगमेंटेशन को कम करके और OCR‑जनित कंटेंट की प्रासंगिकता को बढ़ाकर।
पूर्वापेक्षाएँ
- JDK 8 या बाद का संस्करण स्थापित हो।
- Maven डिपेंडेंसी मैनेजमेंट के लिए।
- GroupDocs.Search for Java लाइब्रेरी तक पहुंच (Maven या आधिकारिक साइट से डाउनलोड की गई)।
आवश्यक लाइब्रेरी और डिपेंडेंसीज़
pom.xml में रिपॉज़िटरी और डिपेंडेंसी एंट्री जोड़ें (नीचे दिखाए अनुसार)। XML ब्लॉक अपरिवर्तित रहना चाहिए।
<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>
आप नवीनतम JARs को यहाँ से भी डाउनलोड कर सकते हैं: GroupDocs.Search for Java releases।
लाइसेंस प्राप्ति
- Free Trial – शुरुआती प्रयोग के लिए उपयुक्त।
- Temporary License – लंबी विकास चक्रों के लिए उपयोगी।
- Production License – व्यावसायिक डिप्लॉयमेंट के लिए आवश्यक।
आधिकारिक पोर्टल से लाइसेंस प्राप्त करें: GroupDocs।
बेसिक इनिशियलाइज़ेशन
नीचे दिया गया स्निपेट एक खाली इंडेक्स को शुरू करने के लिए न्यूनतम कोड दिखाता है। इसे जैसा है वैसा ही रखें; बाद में हम इस पर निर्माण करेंगे।
import com.groupdocs.search.*;
public class GroupDocsSearchSetup {
public static void main(String[] args) {
String indexFolder = "YOUR_OUTPUT_DIRECTORY";
String documentFolder = "YOUR_DOCUMENT_DIRECTORY";
Index index = new Index(indexFolder);
System.out.println("GroupDocs.Search setup completed!");
}
}
GroupDocs.Search for Java सेटअप करना
Maven के माध्यम से इंस्टॉलेशन
Prerequisites सेक्शन की Maven कॉन्फ़िगरेशन ही पर्याप्त है। इसे जोड़ने के बाद, बाइनरीज़ प्राप्त करने के लिए mvn clean install चलाएँ।
एनवायरनमेंट सेटअप आवश्यकताएँ
- सुनिश्चित करें कि इंडेक्स फ़ोल्डर और डॉक्यूमेंट फ़ोल्डर डिस्क पर मौजूद हैं।
- एब्सोल्यूट पाथ्स का उपयोग करें या अपने IDE को रिले्टिव पाथ्स सही ढंग से रिजॉल्व करने के लिए कॉन्फ़िगर करें।
इम्प्लीमेंटेशन गाइड
नीचे हम दो अलग-अलग फीचर पर चलते हैं: रेगुलर कैरेक्टर्स और ब्लेंडेड कैरेक्टर्स। प्रत्येक फीचर समान पैटर्न का पालन करता है—पाथ्स परिभाषित करें, इंडेक्स बनाएं, कैरेक्टर डिक्शनरी सेट करें, और अंत में अपने डॉक्यूमेंट्स को इंडेक्स करें।
फीचर 1 – रेगुलर कैरेक्टर्स
ओवरव्यू
रेगुलर कैरेक्टर्स को स्वतंत्र टोकन के रूप में माना जाता है। यह तब आदर्श है जब आप चाहते हैं कि अंक, अक्षर, और अंडरस्कोर ठीक उसी तरह सर्चेबल हों जैसा वे दिखते हैं।
स्टेप‑बाय‑स्टेप इम्प्लीमेंटेशन
1️⃣ पाथ्स सेट करें
इंडेक्स कहां स्टोर होगा और आपके स्रोत डॉक्यूमेंट्स कहां हैं, यह परिभाषित करें।
String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Indexing/CharacterTypes/RegularCharacters";
String documentFolder = "YOUR_DOCUMENT_DIRECTORY";
2️⃣ इंडेक्स बनाएं और कॉन्फ़िगर करें
इंडेक्स को इंस्टैंशिएट करें और किसी भी पूर्व‑मौजूद अल्फाबेट कॉन्फ़िगरेशन को क्लियर करें।
Index index = new Index(indexFolder);
index.getDictionaries().getAlphabet().clear();
3️⃣ रेगुलर कैरेक्टर्स परिभाषित करें
एक कैरेक्टर एरे बनाएं जिसमें अंक, लैटिन अक्षर, और अंडरस्कोर शामिल हों।
StringBuilder sb = new StringBuilder();
for (char i = 0x0030; i <= 0x0039; i++) { // Digits
sb.append(i);
}
for (char i = 0x0041; i <= 0x005A; i++) { // Latin capital letters
sb.append(i);
}
sb.append(0x005F); // Underscore
for (char i = 0x0061; i <= 0x007A; i++) { // Latin small letters
sb.append(i);
}
// Convert to character array and set as alphabet range
char[] characters = new char[sb.length()];
sb.getChars(0, sb.length(), characters, 0);
index.getDictionaries().getAlphabet().setRange(characters, CharacterType.Letter);
4️⃣ डॉक्यूमेंट्स को इंडेक्स करें
स्रोत फ़ोल्डर की सभी फाइलें नए कॉन्फ़िगर किए गए इंडेक्स में जोड़ें।
index.add(documentFolder);
फीचर 2 – ब्लेंडेड कैरेक्टर्स
ओवरव्यू
ब्लेंडेड कैरेक्टर्स (जैसे हाइफ़न) अक्सर दो शब्दों को जोड़ते हैं। उन्हें ब्लेंडेड के रूप में मार्क करने से इंजन इंडेक्सिंग के दौरान आसपास के टोकन्स को साथ रखता है।
स्टेप‑बाय‑स्टेप इम्प्लीमेंटेशन
1️⃣ पाथ्स सेट करें
String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Indexing/CharacterTypes/BlendedCharacters";
String documentFolder = "YOUR_DOCUMENT_DIRECTORY";
2️⃣ इंडेक्स बनाएं और कॉन्फ़िगर करें
Index index = new Index(indexFolder);
3️⃣ ब्लेंडेड कैरेक्टर्स परिभाषित करें
यहाँ हम डिक्शनरी को बताते हैं कि हाइफ़न को ब्लेंडेड कैरेक्टर माना जाए।
index.getDictionaries().getAlphabet().setRange(new char[] { '-' }, CharacterType.Blended);
4️⃣ डॉक्यूमेंट्स को इंडेक्स करें
index.add(documentFolder);
व्यावहारिक अनुप्रयोग
उपयोग केस 1 – लीगल डॉक्यूमेंट मैनेजमेंट
लीगल फ़ाइलों में अक्सर केस नंबर जैसे 2023-AB-456 होते हैं। अंडरस्कोर और हाइफ़न को कॉन्फ़िगर करने से सर्च बिना पहचानकर्ता को विभाजित किए एक्ज़ैक्ट मैच लौटाता है, जिससे आप लीगल केस नंबरों को प्रभावी ढंग से सर्च कर सकते हैं।
उपयोग केस 2 – सोर्स‑कोड रिपॉज़िटरीज़
डेवलपर्स को कोड स्निपेट्स सर्च करने की जरूरत होती है जहाँ अंडरस्कोर (my_variable) और हाइफ़न (my-function) का अर्थ होता है। कस्टम कैरेक्टर रिकग्निशन सुनिश्चित करता है कि सर्च इंजन इन प्रतीकों का सम्मान करे।
उपयोग केस 3 – मल्टीलिंगुअल डेटासेट्स
जब आप ऐसी भाषाओं के साथ काम करते हैं जो अतिरिक्त अल्फाबेट्स का उपयोग करती हैं, तो आप Unicode कैरेक्टर सेट को विस्तारित करके उन रेंजेज़ को शामिल कर सकते हैं, जिससे सटीक क्रॉस‑लैंग्वेज सर्च परिणाम सुनिश्चित होते हैं।
उपयोग केस 4 – PDF इमेजेज को इंडेक्स करना
यदि आप स्कैन किए गए PDFs या इमेज फ़ाइलों को इंडेक्स कर रहे हैं, तो OCR आउटपुट में अक्सर मिश्रित कैरेक्टर्स होते हैं। रेगुलर और ब्लेंडेड कैरेक्टर्स को सही ढंग से कॉन्फ़िगर करने से सर्च इंडेक्स का प्रदर्शन इमेज‑बेस्ड कंटेंट के लिए ऑप्टिमाइज़ होता है।
प्रदर्शन संबंधी विचार
- रिसोर्स मैनेजमेंट – हीप उपयोग पर नज़र रखें; बड़े इंडेक्स इन्क्रिमेंटल कमिट्स से लाभान्वित होते हैं।
- गार्बेज कलेक्शन – काम समाप्त होने पर
Indexऑब्जेक्ट्स को रिलीज़ करें ताकि JVM मेमोरी रिक्लेम कर सके। - इंडेक्स ऑप्टिमाइज़ेशन – समय-समय पर
index.optimize()(यदि उपलब्ध हो) को कॉल करें ताकि इंडेक्स को कॉम्पैक्ट किया जा सके और क्वेरी स्पीड बेहतर हो।
निष्कर्ष
अब आप जानते हैं इंडेक्स कैसे बनाएं जो रेगुलर और ब्लेंडेड कैरेक्टर्स के बीच अंतर करता है, GroupDocs.Search for Java का उपयोग करके। यह सूक्ष्म नियंत्रण आपको OCR‑अवेयर, हाई‑परफ़ॉर्मेंस सर्च सॉल्यूशन्स बनाने में सक्षम बनाता है, जो लीगल, डेवलपमेंट, या मल्टीलिंगुअल वातावरण के लिए उपयुक्त हैं।
अगले कदम
- गैर‑लैटिन अल्फाबेट्स के लिए अतिरिक्त Unicode रेंजेज़ के साथ प्रयोग करें।
- कैरेक्टर कॉन्फ़िगरेशन को अन्य GroupDocs.Search फीचर्स जैसे स्टेमिंग या सिनोनिम्स के साथ मिलाएँ।
- इंडेक्स को REST API में इंटीग्रेट करें ताकि सर्च क्षमताओं को फ्रंट‑एंड एप्लिकेशन्स तक पहुँचाया जा सके।
अक्सर पूछे जाने वाले प्रश्न
प्रश्न: CharacterType.Letter का उद्देश्य क्या है?
उत्तर: यह इंडेक्स को बताता है कि प्रदान किए गए कैरेक्टर्स को रेगुलर लेटर्स माना जाए, इसलिए वे इंडेक्सिंग के दौरान अलग-अलग टोकनाइज़ होते हैं।
प्रश्न: क्या मैं एक ही इंडेक्स में रेगुलर और ब्लेंडेड कैरेक्टर्स को मिलाकर उपयोग कर सकता हूँ?
उत्तर: हाँ—प्रत्येक प्रकार के लिए बस setRange कॉल करें; डिक्शनरी दोनों कॉन्फ़िगरेशन को एक साथ संभालेगा।
प्रश्न: अल्फाबेट बदलने के बाद क्या मुझे इंडेक्स को फिर से बनाना पड़ेगा?
उत्तर: बिल्कुल। कैरेक्टर डिक्शनरी में बदलाव टोकनाइज़ेशन को प्रभावित करते हैं, इसलिए नई नियमों को लागू करने के लिए आपको डॉक्यूमेंट्स को फिर से इंडेक्स करना होगा।
प्रश्न: मैं कितने कस्टम कैरेक्टर्स परिभाषित कर सकता हूँ, क्या इसकी कोई सीमा है?
उत्तर: लाइब्रेरी पूरी Unicode रेंज को सपोर्ट करती है; यदि आप अत्यधिक बड़ी सेट जोड़ते हैं तो प्रदर्शन घट सकता है, इसलिए केवल आवश्यक कैरेक्टर्स ही जोड़ें।
प्रश्न: यह OCR की सटीकता को कैसे प्रभावित करता है?
उत्तर: इंडेक्स के कैरेक्टर सेट को OCR इंजन के आउटपुट के साथ संरेखित करके आप फॉल्स नेगेटिव्स को कम करते हैं और समग्र सर्च प्रासंगिकता को सुधारते हैं।
अंतिम अपडेट: 2026-03-17
परीक्षण किया गया: GroupDocs.Search 25.4 for Java
लेखक: GroupDocs