कस्टम सर्च इंडेक्स बनाएं कैरेक्टर रिकग्निशन के साथ GroupDocs.Search for Java का उपयोग करके

आधुनिक दस्तावेज‑भारी अनुप्रयोगों में, creating a custom search index जो आपके टेक्स्ट की बारीकियों—जैसे हाइफ़न, अंडरस्कोर, या भाषा‑विशिष्ट प्रतीकों—को समझता है, तेज़ और सटीक पुनर्प्राप्ति के लिए आवश्यक है। यह ट्यूटोरियल आपको GroupDocs.Search for Java में कैरेक्टर रिकग्निशन को कॉन्फ़िगर करने के चरणों से परिचित कराता है, जिसमें नियमित कैरेक्टर (अक्षर, अंक, अंडरस्कोर) और मिश्रित कैरेक्टर (जैसे हाइफ़न) दोनों शामिल हैं। अंत तक, आप एक ऐसा इंडेक्स तैयार कर पाएँगे जो आपके OCR या इमेज‑सर्च परिदृश्य की सटीक आवश्यकताओं को पूरा करता हो।

त्वरित उत्तर

  • What does “create custom search index” mean? इसका अर्थ है एक इंडेक्स को इस तरह कॉन्फ़िगर करना कि विशिष्ट प्रतीकों को अक्षर या मिश्रित कैरेक्टर माना जाए, न कि उन्हें अनदेखा किया जाए।
  • Which library is used? GroupDocs.Search for Java (v25.4 at the time of writing).
  • Do I need a license? विकास के लिए एक फ्री ट्रायल काम करता है; प्रोडक्शन के लिए एक पेड लाइसेंस आवश्यक है।
  • Can I index both PDFs and images? हाँ—जब सही तरीके से कॉन्फ़िगर किया जाए तो GroupDocs.Search इमेज और PDF पर OCR का समर्थन करता है।
  • Is Maven required? Maven डिपेंडेंसी मैनेजमेंट के लिए अनुशंसित तरीका है, लेकिन आप Gradle या मैन्युअल JARs भी उपयोग कर सकते हैं।

कस्टम सर्च इंडेक्स क्या है?

एक कस्टम सर्च इंडेक्स आपको यह निर्धारित करने की अनुमति देता है कि सर्च इंजन कैरेक्टर को कैसे व्याख्या करता है। डिफ़ॉल्ट रूप से, कई प्रतीकों को अनदेखा किया जाता है, जिससे केस नंबर (ABC-123) या कोड स्निपेट (my_variable) जैसे मामलों में मिलान छूट सकता है। अल्फाबेट डिक्शनरी को समायोजित करने से आपको यह पूरी नियंत्रण मिलता है कि इंजन कौन से टेक्स्ट को सर्चेबल मानता है।

नियमित और मिश्रित कैरेक्टर को कॉन्फ़िगर क्यों करें?

  • Regular characters (letters, digits, underscores) को स्वतंत्र टोकन के रूप में माना जाता है, जिससे सटीक‑मैच खोज में सुधार होता है।
  • Blended characters (hyphens, slashes) शब्दों को जोड़ते हैं; इन्हें कॉन्फ़िगर करने से अनावश्यक टोकन विभाजन रोका जा सकता है, जो कानूनी संदर्भों, प्रोडक्ट कोड या सोर्स‑कोड इंडेक्सिंग के लिए महत्वपूर्ण है।

पूर्वापेक्षाएँ

  • 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 चलाएँ।

पर्यावरण सेटअप आवश्यकताएँ

  • सुनिश्चित करें कि index folder और document folder डिस्क पर मौजूद हैं।
  • एब्सोल्यूट पाथ्स का उपयोग करें या अपने IDE को रिले‍टिव पाथ्स सही ढंग से रिज़ॉल्व करने के लिए कॉन्फ़िगर करें।

इम्प्लीमेंटेशन गाइड

नीचे हम दो अलग-अलग फीचर्स पर चलते हैं: regular characters और blended characters। प्रत्येक फीचर समान पैटर्न का अनुसरण करता है—पाथ्स निर्धारित करें, इंडेक्स बनाएं, कैरेक्टर डिक्शनरी सेट करें, और अंत में अपने दस्तावेज़ों को इंडेक्स करें।

फीचर 1 – नियमित कैरेक्टर

अवलोकन

नियमित कैरेक्टर को स्वतंत्र टोकन के रूप में माना जाता है। यह तब आदर्श है जब आप चाहते हैं कि अंक, अक्षर, और अंडरस्कोर ठीक उसी रूप में सर्चेबल हों जैसा वे दिखाई देते हैं।

चरण‑दर‑चरण इम्प्लीमेंटेशन

1️⃣ Set Up Paths
इंडेक्स कहाँ संग्रहीत होगा और आपके स्रोत दस्तावेज़ कहाँ स्थित हैं, इसे परिभाषित करें।

String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Indexing/CharacterTypes/RegularCharacters";
String documentFolder = "YOUR_DOCUMENT_DIRECTORY";

2️⃣ Create and Configure Index
इंडेक्स को इंस्टैंशिएट करें और किसी भी पूर्व‑स्थापित अल्फाबेट कॉन्फ़िगरेशन को साफ़ करें।

Index index = new Index(indexFolder);
index.getDictionaries().getAlphabet().clear();

3️⃣ Define Regular Characters
एक कैरेक्टर एरे बनाएं जिसमें अंक, लैटिन अक्षर, और अंडरस्कोर शामिल हों।

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 Documents
स्रोत फ़ोल्डर की सभी फ़ाइलें नए कॉन्फ़िगर किए गए इंडेक्स में जोड़ें।

index.add(documentFolder);

फीचर 2 – मिश्रित कैरेक्टर

अवलोकन

मिश्रित कैरेक्टर (जैसे हाइफ़न) अक्सर दो शब्दों को जोड़ते हैं। उन्हें blended के रूप में चिह्नित करने से इंजन को इंडेक्सिंग के दौरान आसपास के टोकन को साथ रखता है।

चरण‑दर‑चरण इम्प्लीमेंटेशन

1️⃣ Set Up Paths

String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Indexing/CharacterTypes/BlendedCharacters";
String documentFolder = "YOUR_DOCUMENT_DIRECTORY";

2️⃣ Create and Configure Index

Index index = new Index(indexFolder);

3️⃣ Define Blended Characters
यहाँ हम डिक्शनरी को बताते हैं कि हाइफ़न को मिश्रित कैरेक्टर माना जाए।

index.getDictionaries().getAlphabet().setRange(new char[] { '-' }, CharacterType.Blended);

4️⃣ Index Documents

index.add(documentFolder);

व्यावहारिक अनुप्रयोग

उपयोग केस 1 – कानूनी दस्तावेज़ प्रबंधन

कानूनी फ़ाइलों में अक्सर केस नंबर जैसे 2023-AB-456 होते हैं। अंडरस्कोर और हाइफ़न को कॉन्फ़िगर करने से खोजें पहचानकर्ता को विभाजित किए बिना सटीक मिलान लौटाती हैं।

उपयोग केस 2 – सोर्स‑कोड रिपॉज़िटरीज़

डेवलपर्स को कोड स्निपेट्स खोजने की आवश्यकता होती है जहाँ अंडरस्कोर (my_variable) और हाइफ़न (my-function) का अर्थ होता है। कस्टम कैरेक्टर रिकग्निशन सुनिश्चित करता है कि सर्च इंजन इन प्रतीकों का सम्मान करे।

उपयोग केस 3 – बहुभाषी डेटासेट्स

जब आप ऐसी भाषाओं के साथ काम करते हैं जो अतिरिक्त अल्फाबेट्स का उपयोग करती हैं, तो आप नियमित कैरेक्टर सेट को उन Unicode रेंजेज़ को शामिल करने के लिए विस्तारित कर सकते हैं, जिससे सटीक क्रॉस‑भाषा खोज परिणाम सुनिश्चित होते हैं।

प्रदर्शन संबंधी विचार

  • Resource Management – हीप उपयोग पर नज़र रखें; बड़े इंडेक्स इन्क्रीमेंटल कमिट्स से लाभान्वित होते हैं।
  • Garbage Collection – समाप्त होने पर Index ऑब्जेक्ट्स को रिलीज़ करें ताकि JVM मेमोरी पुनः प्राप्त कर सके।
  • Index Optimization – समय‑समय पर index.optimize() (यदि उपलब्ध हो) को कॉल करें ताकि इंडेक्स को कॉम्पैक्ट किया जा सके और क्वेरी गति में सुधार हो।

निष्कर्ष

अब आप जानते हैं कि create a custom search index को कैसे बनाएं जो नियमित और मिश्रित कैरेक्टर के बीच अंतर करता है, GroupDocs.Search for Java का उपयोग करके। यह सूक्ष्म नियंत्रण आपको OCR‑सजग, उच्च‑प्रदर्शन सर्च समाधान बनाने में सक्षम बनाता है, जो कानूनी, विकास, या बहुभाषी वातावरण के लिए अनुकूलित हैं।

अगले कदम

  • गैर‑लैटिन अल्फाबेट्स के लिए अतिरिक्त Unicode रेंजेज़ के साथ प्रयोग करें।
  • कैरेक्टर कॉन्फ़िगरेशन को अन्य GroupDocs.Search फीचर्स जैसे स्टेमिंग या साइनोनिम्स के साथ मिलाएँ।
  • इंडेक्स को REST API में इंटीग्रेट करें ताकि सर्च क्षमताओं को फ्रंट‑एंड एप्लिकेशन्स तक पहुँचाया जा सके।

अक्सर पूछे जाने वाले प्रश्न

Q: CharacterType.Letter का उद्देश्य क्या है?
A: यह इंडेक्स को बताता है कि प्रदान किए गए कैरेक्टर को नियमित अक्षर माना जाए, इसलिए वे इंडेक्सिंग के दौरान अलग‑अलग टोकनाइज़ होते हैं।

Q: क्या मैं एक ही इंडेक्स में नियमित और मिश्रित दोनों कैरेक्टर को मिला सकता हूँ?
A: हाँ—प्रत्येक प्रकार के लिए बस setRange कॉल करें; डिक्शनरी दोनों कॉन्फ़िगरेशन को एक साथ संभालेगा।

Q: अल्फाबेट बदलने के बाद क्या मुझे इंडेक्स को पुनः बनाना चाहिए?
A: बिल्कुल। कैरेक्टर डिक्शनरी में बदलाव टोकनाइज़ेशन को प्रभावित करते हैं, इसलिए नई नियमों को लागू करने के लिए आपको दस्तावेज़ों को पुनः‑इंडेक्स करना होगा।

Q: मैं कितने कस्टम कैरेक्टर परिभाषित कर सकता हूँ, क्या इसकी कोई सीमा है?
A: लाइब्रेरी पूरी Unicode रेंज को सपोर्ट करती है; यदि आप बहुत बड़ी सेट जोड़ते हैं तो प्रदर्शन घट सकता है, इसलिए केवल आवश्यक कैरेक्टर ही जोड़ें।

Q: यह OCR की सटीकता को कैसे प्रभावित करता है?
A: इंडेक्स के कैरेक्टर सेट को OCR इंजन के आउटपुट के साथ संरेखित करके आप फॉल्स नेगेटिव्स को कम करते हैं और समग्र सर्च प्रासंगिकता को सुधारते हैं।


अंतिम अपडेट: 2026-01-11
परीक्षित संस्करण: GroupDocs.Search 25.4 for Java
लेखक: GroupDocs