केस‑इन्सेंसिटिव खोज के लिए जावा में इंडेक्स में दस्तावेज़ जोड़ें

जब आपको case insensitive search java की आवश्यकता हो जो उपयोगकर्ताओं द्वारा टाइप किए जाने के तरीके की परवाह किए बिना विश्वसनीय रूप से जानकारी खोजे, तो मुख्य बात यह है कि टेक्स्ट को सामान्यीकृत करते हुए दस्तावेज़ों को इंडेक्स में जोड़ें। इस ट्यूटोरियल में हम GroupDocs.Search for Java को कॉन्फ़िगर करना दिखाते हैं ताकि आप द्वारा इंडेक्स किए गए प्रत्येक दस्तावेज़ को इंडेक्सिंग के दौरान स्वचालित रूप से लोअर‑केस (या अन्य रूपांतरण) किया जाए, जिससे अतिरिक्त क्वेरी‑टाइम लॉजिक के बिना केस‑इन्सेंसिटिव परिणाम सुनिश्चित हों।

त्वरित उत्तर

  • “add documents to index” का क्या अर्थ है? इसका मतलब है स्रोत फ़ाइलों को एक खोज योग्य डेटा संरचना में लोड करना ताकि उन्हें बाद में क्वेरी किया जा सके।
  • कैरेक्टर रिप्लेसमेंट क्यों उपयोग करें? यह प्रत्येक कैरेक्टर को सामान्यीकृत करता है—आमतौर पर लोअर‑केस में—ताकि खोजें स्वचालित रूप से केस अंतर को नज़रअंदाज़ कर सकें।
  • क्या मुझे लाइसेंस चाहिए? विकास के लिए फ्री ट्रायल काम करता है; उत्पादन परिनियोजन के लिए पूर्ण लाइसेंस आवश्यक है।
  • कौन सा जावा संस्करण आवश्यक है? जावा 8 या नया; लाइब्रेरी इष्टतम प्रदर्शन के लिए जावा 11+ को लक्षित करती है।
  • क्या आवश्यकता पड़ने पर केस‑सेंसिटिव खोज पर स्विच कर सकता हूँ? हाँ—सर्च विकल्प आपको प्रत्येक क्वेरी के लिए केस‑सेंसिटिविटी टॉगल करने देते हैं।

GroupDocs.Search में “add documents to index” क्या है?

अपने स्रोत फ़ाइलों (PDF, DOCX, TXT, आदि) को एक खोज योग्य इंडेक्स में लोड करें ताकि इंजन उन्हें तेज़ी से पुनः प्राप्त कर सके। इंडेक्स में दस्तावेज़ जोड़ना प्रत्येक फ़ाइल को पार्स करता है, साधा टेक्स्ट निकालता है, और उसे एक अनुकूलित डेटा संरचना में संग्रहीत करता है जो तेज़ लुक‑अप सक्षम करती है।

इंडेक्सिंग के दौरान कैरेक्टर रिप्लेसमेंट को सक्षम क्यों करें?

कैरेक्टर रिप्लेसमेंट प्रत्येक कैरेक्टर को एक पूर्वनिर्धारित समकक्ष में बदल देता है—सबसे आम तौर पर लोअर‑केस—जब इंडेक्स बनाया जाता है। यह सुनिश्चित करता है कि कैपिटलाइज़ेशन, डायाक्रिटिक्स, या लोकेल‑विशिष्ट प्रतीकों में विविधताएँ खोज परिणामों को प्रभावित न करें। इंडेक्सिंग समय पर टेक्स्ट को सामान्यीकृत करके, इंजन एक सुसंगत टोकन सेट के विरुद्ध क्वेरीज़ को मिलान कर सकता है, जिससे अतिरिक्त प्रोसेसिंग के बिना तेज़, विश्वसनीय केस‑इन्सेंसिटिव व्यवहार मिलता है।

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

  • GroupDocs.Search for Java संस्करण 25.4 या नया (लाइब्रेरी 30+ फ़ाइल फ़ॉर्मेट का समर्थन करती है और मेमोरी में पूरी फ़ाइल लोड किए बिना कई‑सौ‑पृष्ठ दस्तावेज़ों को इंडेक्स कर सकती है)।
  • Java Development Kit (JDK) 8 या बाद का स्थापित होना चाहिए।
  • Maven की बुनियादी समझ (या JARs को मैन्युअल रूप से जोड़ने की क्षमता)।

GroupDocs.Search for Java सेटअप

Maven सेटअप

अपने pom.xml में 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>

सीधे डाउनलोड

यदि आप Maven का उपयोग नहीं करना चाहते, तो आधिकारिक साइट से नवीनतम JAR प्राप्त करें: GroupDocs.Search for Java releases।

लाइसेंस प्राप्ति

  • Free Trial – प्रयोग शुरू करने के लिए ट्रायल लाइसेंस डाउनलोड करें।
  • Temporary License – GroupDocs पोर्टल से विस्तारित परीक्षण लाइसेंस का अनुरोध करें।
  • Full License – जब आप लाइव जाने के लिए तैयार हों तो प्रोडक्शन लाइसेंस खरीदें।

बुनियादी इनिशियलाइज़ेशन (इंडेक्स बनाएं)

निम्न स्निपेट एक इंडेक्स फ़ोल्डर बनाता है और कैरेक्टर रिप्लेसमेंट को सक्षम करता है:

import com.groupdocs.search.Index;
import com.groupdocs.search.IndexSettings;

String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Indexing/CharacterReplacementDuringIndexing";
IndexSettings settings = new IndexSettings();
settings.setUseCharacterReplacements(true);
Index index = new Index(indexFolder, settings);

कार्यान्वयन गाइड

इंडेक्स सेटिंग्स में कैरेक्टर रिप्लेसमेंट सक्षम करें

इस फीचर को सक्रिय करने से इंजन को इंडेक्सिंग के दौरान कैरेक्टर बदलने का निर्देश मिलता है, जो केस‑इन्सेंसिटिव व्यवहार का मूल चरण है।

चरण १: IndexSettings कॉन्फ़िगर करें

IndexSettings वह कॉन्फ़िगरेशन ऑब्जेक्ट है जो नियंत्रित करता है कि इंडेक्स टेक्स्ट को कैसे संग्रहीत और प्रोसेस करता है। useCharacterReplacements को true सेट करके आप स्वचालित लोअर‑केसिंग (या कोई भी कस्टम मैपिंग) चालू कर देते हैं।

import com.groupdocs.search.Index;
import com.groupdocs.search.IndexSettings;

String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Indexing/CharacterReplacementDuringIndexing";

// Create an instance of IndexSettings and enable character replacement.
IndexSettings settings = new IndexSettings();
settings.setUseCharacterReplacements(true);

// Initialize the index with these settings.
Index index = new Index(indexFolder, settings);

कैरेक्टर रिप्लेसमेंट कॉन्फ़िगर करें

प्रत्येक कैरेक्टर को उसके लोअर‑केस समकक्ष (या आवश्यक कोई भी कस्टम मैपिंग) में मैप करें।

चरण २: रिप्लेसमेंट पेयर्स परिभाषित करें और जोड़ें

रिप्लेसमेंट डिक्शनरी में 'A' → 'a', 'É' → 'e' आदि जैसे पेयर्स होते हैं। इंडेक्सिंग से पहले इन पेयर्स को जोड़ने से सुनिश्चित होता है कि हर टोकन सामान्यीकृत हो।

import com.groupdocs.search.dictionaries.CharacterReplacementPair;

// Access existing replacements and clear them.
index.getDictionaries().getCharacterReplacements().clear();

// Create an array for new replacements.
CharacterReplacementPair[] characterReplacements = new CharacterReplacementPair[Character.MAX_VALUE + 1];
for (int i = 0; i < characterReplacements.length; i++) {
    char originalChar = (char) i;
    char replacementChar = Character.toLowerCase(originalChar);
    characterReplacements[i] = new CharacterReplacementPair(originalChar, replacementChar);
}

// Add these replacements to the index's dictionary.
index.getDictionaries().getCharacterReplacements().addRange(characterReplacements);

दस्तावेज़ों का इंडेक्सिंग

अब जब इंडेक्स तैयार है, आप किसी भी फ़ोल्डर से add documents to index कर सकते हैं।

चरण ३: इंडेक्सिंग के लिए दस्तावेज़ जोड़ें

GroupDocs.Search लक्ष्य डायरेक्टरी को स्कैन करता है, प्रत्येक समर्थित फ़ाइल प्रकार से टेक्स्ट निकालता है, रिप्लेसमेंट मैप लागू करता है, और टोकन को इंडेक्स स्टोरेज में लिखता है।

import com.groupdocs.search.Index;

String documentFolder = "YOUR_DOCUMENT_DIRECTORY";

// Initialize the index and add documents.
Index index = new Index(indexFolder, settings);
index.add(documentFolder);

केस‑सेंसिटिव खोज निष्पादित करें (वैकल्पिक)

चरण ४: केस‑सेंसिटिव खोजें चलाएँ

SearchOptions क्वेरी व्यवहार को कॉन्फ़िगर करता है, जैसे केस‑सेंसिटिविटी टॉगल करना, जिससे खोज कैसे की जाती है इस पर सूक्ष्म नियंत्रण मिलता है।
SearchOptions.setUseCaseSensitiveSearch(true) इंजन को विशिष्ट क्वेरी के दौरान अपर‑और लोअर‑केस कैरेक्टर को अलग-अलग मानने के लिए मजबूर करता है, जिससे डिफ़ॉल्ट केस‑इन्सेंसिटिव व्यवहार ओवरराइड हो जाता है।

import com.groupdocs.search.Index;
import com.groupdocs.search.SearchOptions;
import com.groupdocs.search.results.SearchResult;

String query = "Promotion";
SearchOptions options = new SearchOptions();
options.setUseCaseSensitiveSearch(true);

// Perform the search.
Index index = new Index(indexFolder, settings);
SearchResult result = index.search(query, options);

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

  1. मार्केटिंग कैंपेन – उत्पाद नामों को सामान्यीकृत करें ताकि सेल्स टीम केस की परवाह किए बिना एसेट्स खोज सके।
  2. कस्टमर सपोर्ट – हेल्प‑डेस्क सर्च बॉक्स को इस प्रकार सक्षम करें कि उपयोगकर्ता “login” या “Login” टाइप करे, फिर भी सही लेख लौटे।
  3. ई‑कॉमर्स कैटलॉग – शॉपर्स को उत्पाद शीर्षक चाहे जैसे भी टाइप करें, आइटम खोजने दें, जिससे रूपांतरण दरें बढ़ें।

प्रदर्शन विचार

  • स्रोत फ़ाइलों का आयोजन – एक साफ़ फ़ोल्डर संरचना add documents to index चरण के दौरान स्कैनिंग समय को कम करती है।
  • मेमोरी मॉनिटर करें – बड़े कॉर्पोरा को इंडेक्स करने से काफी RAM उपयोग हो सकता है; फ़ाइलों को 500 – 1 000 आइटम के बैच में प्रोसेस करने से हीप उपयोग नियंत्रण में रहता है।
  • असिंक्रोनस इंडेक्सिंग – जब समर्थित हो, बैकग्राउंड थ्रेड पर इंडेक्सिंग चलाएँ ताकि UI रिस्पॉन्सिव रहे और उपयोगकर्ता ऑपरेशन्स ब्लॉक न हों।

सामान्य समस्याएँ और ट्रबलशूटिंग

लक्षणसंभावित कारणसमाधान
ज्ञात शब्द के लिए कोई परिणाम नहीं मिलाकैरेक्टर रिप्लेसमेंट सक्षम नहीं हैsettings.setUseCharacterReplacements(true) को सत्यापित करें और सुनिश्चित करें कि रिप्लेसमेंट मैप में आवश्यक कैरेक्टर मौजूद हैं।
इंडेक्सिंग के दौरान Out‑of‑memory त्रुटिएक साथ बहुत बड़ी फ़ाइलें इंडेक्स की जा रही हैंछोटे बैच में इंडेक्स करें या JVM हीप बढ़ाएँ (-Xmx4g)।
खोज अप्रत्याशित रूप से केस‑सेंसिटिव परिणाम देती हैSearchOptions.setUseCaseSensitiveSearch(true) सेट किया गया थाडिफ़ॉल्ट केस‑इन्सेंसिटिव व्यवहार के लिए इसे हटाएँ या false सेट करें।
इंडेक्स लोड समय अपेक्षा से अधिक हैफ़ोल्डर लेआउट अक्षम है या SSD उपयोग नहीं हो रहाफ़ाइलें पुनः व्यवस्थित करें, अनावश्यक दस्तावेज़ हटाएँ, और इंडेक्स को तेज़ SSD पर रखें।
विशेष कैरेक्टर अनदेखे रह जाते हैंरिप्लेसमेंट मैप में यूनिकोड एंट्री नहीं हैं“é”, “ß”, “ø” जैसे कैरेक्टर के लिए मैपिंग जोड़ें।

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

Q: इंडेक्सिंग के दौरान विशेष कैरेक्टर (जैसे “é”, “ß”) को कैसे संभालूँ?
A: उन कैरेक्टर को अपने रिप्लेसमेंट मैप में शामिल करें, उन्हें उनके ASCII समकक्ष में मैप करें या खोज आवश्यकताओं के आधार पर अपरिवर्तित रखें।

Q: क्या मैं कैरेक्टर रिप्लेसमेंट को केवल एक विशिष्ट भाषा तक सीमित कर सकता हूँ?
A: हाँ। कस्टम रिप्लेसमेंट एरे बनाएं जिसमें केवल लक्षित भाषा के कैरेक्टर हों, फिर उसे डिक्शनरी में जोड़ें।

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

Q: क्या इंडेक्सिंग के बाद कैरेक्टर रिप्लेसमेंट को वापस किया जा सकता है?
A: नहीं। रिप्लेसमेंट इंडेक्स्ड डेटा में बेक्ड होते हैं; उन्हें बदलने के लिए नई सेटिंग्स के साथ इंडेक्स को पुनः बनाना पड़ेगा।

Q: अधिक विस्तृत API दस्तावेज़ कहाँ मिलेंगे?
A: आधिकारिक दस्तावेज़ और API रेफ़रेंस में विस्तृत जानकारी उपलब्ध है (नीचे संसाधनों को देखें)।

संसाधन


अंतिम अपडेट: 2026-07-31
परीक्षण किया गया: GroupDocs.Search 25.4 for Java
लेखक: GroupDocs

संबंधित ट्यूटोरियल