Java में GroupDocs.Search के साथ फ़ॉर्म कैसे जेनरेट करें

इस गाइड में आप GroupDocs.Search API का उपयोग करके Java में फ़ॉर्म कैसे जेनरेट करें सीखेंगे। एक कस्टम word‑forms प्रोवाइडर बनाकर आप अपने सर्च या टेक्स्ट‑एनालिसिस इंजन को किसी शब्द के सभी वैरिएशन को पहचानने में सक्षम बनाते हैं—चाहे वह “cat”, “cats”, “city”, या “citis” हो। इससे रिकॉल में काफी सुधार होता है जबकि प्रीसिशन उच्च बनी रहती है।

त्वरित उत्तर

  • एक word forms प्रोवाइडर क्या करता है? यह किसी शब्द के वैकल्पिक रूप (एकवचन, बहुवचन, आदि) जेनरेट करता है ताकि सर्च सभी वैरिएंट्स से मेल खा सके।
  • कौन सी लाइब्रेरी आवश्यक है? GroupDocs.Search for Java (version 25.4 or newer).
  • क्या मुझे लाइसेंस चाहिए? मूल्यांकन के लिए एक फ्री ट्रायल काम करता है; प्रोडक्शन के लिए एक स्थायी लाइसेंस आवश्यक है।
  • कौन सा Java संस्करण समर्थित है? JDK 8 या उससे ऊपर।
  • कोड की कितनी लाइनों की जरूरत है? एक साधारण प्रोवाइडर इम्प्लीमेंटेशन के लिए लगभग 30 लाइन।

“create word forms provider” फीचर क्या है?

एक create word forms प्रोवाइडर एक कस्टम क्लास है जो IWordFormsProvider को इम्प्लीमेंट करती है। IWordFormsProvider एक इंटरफ़ेस है जो परिभाषित करता है कि प्रोवाइडर सर्च इंजन को वैकल्पिक शब्द रूप कैसे प्रदान करते हैं। यह एक शब्द प्राप्त करता है और संभावित रूपों की एक एरे रिटर्न करता है—एकवचन, बहुवचन, या अन्य भाषाई वैरिएशन—आपके द्वारा परिभाषित नियमों के आधार पर। यह सर्च इंडेक्स को “cat” और “cats” को समकक्ष मानने में सक्षम बनाता है, जिससे रिकॉल में सुधार होता है बिना प्रीसिशन खोए।

Word‑form जेनरेशन के लिए GroupDocs.Search क्यों उपयोग करें?

GroupDocs.Search बिल्ट‑इन एक्स्टेंसिबिलिटी प्रदान करता है, जिससे आप अपने स्वयं के प्रोवाइडर को सीधे इंडेक्सिंग पाइपलाइन में प्लग कर सकते हैं। यह 10 million दस्तावेज़ तक के इंडेक्स को प्रोसेस करता है जबकि मेमोरी उपयोग 500 MB से कम रखता है, स्ट्रीमिंग आर्किटेक्चर के कारण, और आप परिणामों को कैश करके सब‑मिलीसेकंड लुकअप टाइम प्राप्त कर सकते हैं।

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

  • Maven स्थापित हो और आपके मशीन पर JDK 8 या नया सेट हो।
  • Java विकास और Maven के pom.xml कॉन्फ़िगरेशन की बुनियादी समझ।
  • GroupDocs.Search Java लाइब्रेरी (version 25.4 या बाद) तक पहुँच।

Java के लिए GroupDocs.Search सेटअप करना

Maven कॉन्फ़िगरेशन

नीचे दिखाए अनुसार अपने pom.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>

सीधे डाउनलोड

वैकल्पिक रूप से, आधिकारिक रिलीज़ पेज से नवीनतम JAR डाउनलोड करें: GroupDocs.Search for Java releases.

लाइसेंस प्राप्त करने के चरण

  1. Free trial: कोर फीचर्स आज़माने के लिए ट्रायल के लिए साइन अप करें।
  2. Temporary license: विस्तारित परीक्षण के लिए एक टेम्पररी की अनुरोध करें।
  3. Purchase: अनलिमिटेड प्रोडक्शन उपयोग के लिए एक कमर्शियल लाइसेंस प्राप्त करें।

बेसिक इनिशियलाइज़ेशन और सेटअप

निम्नलिखित स्निपेट दिखाता है कि इंडेक्स कैसे बनाएं—डॉक्यूमेंट्स और word‑form लॉजिक जोड़ने का आपका शुरुआती बिंदु:

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.");
    }
}

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

नीचे हम उन चरणों से गुजरते हैं जो एक word forms प्रोवाइडर बनाते हैं जो सरल singular‑to‑plural और plural‑to‑singular ट्रांसफ़ॉर्मेशन को संभालता है।

SimpleWordFormsProvider को इम्प्लीमेंट करना

सारांश

SimpleWordFormsProvider क्लास IWordFormsProvider को इम्प्लीमेंट करती है। परिभाषा एंकर इसका उद्देश्य स्पष्ट करता है:

SimpleWordFormsProvider IWordFormsProvider की एक कस्टम इम्प्लीमेंटेशन है जो इंडेक्सिंग इंजन के लिए singular‑plural वैरिएशन प्रदान करती है।

चरण 1 – क्लास स्केलेटन बनाएं

IWordFormsProvider को इम्प्लीमेंट करने वाली क्लास को परिभाषित करके शुरू करें। इम्पोर्ट स्टेटमेंट्स को जैसा है वैसा रखें:

import com.groupdocs.search.dictionaries.IWordFormsProvider;
import java.util.ArrayList;

public class SimpleWordFormsProvider implements IWordFormsProvider {

चरण 2 – getWordForms को इम्प्लीमेंट करें

ऐसी मेथड जोड़ें जो संभावित रूपों की सूची बनाती है। यह ब्लॉक कोर लॉजिक रखता है; आप बाद में इसे अधिक जटिल नियमों को कवर करने के लिए विस्तारित कर सकते हैं।

getWordForms एक टर्म लेता है और सभी जेनरेटेड वैरिएशन वाले String[] को रिटर्न करता है।

    @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]);
    }
}

लॉजिक की व्याख्या

  • Singularization: सामान्य बहुवचन सफ़िक्स (es, s) का पता लगाता है और बेस शब्द का अनुमान लगाने के लिए उन्हें हटाता है।
  • Pluralization: उन संज्ञाओं को संभालता है जो y पर समाप्त होती हैं, उन्हें is से बदलकर, एक सरल नियम जो कई अंग्रेज़ी शब्दों पर काम करता है।
  • Suffix appending: नियमित बहुवचन रूपों को कवर करने के लिए s और es जोड़ता है जो पहले की जाँचों में नहीं पकड़े जा सकते।

समस्या निवारण टिप्स

  • Case sensitivity: मेथड तुलना के लिए toLowerCase() का उपयोग करता है, जिससे “Cats” और “cats” समान व्यवहार करते हैं।
  • Edge cases: सफ़िक्स की लंबाई से छोटे शब्दों को अनदेखा किया जाता है ताकि खाली स्ट्रिंग्स न लौटें।
  • Performance: बड़े शब्दकोशों के लिए, परिणामों को ConcurrentHashMap में कैश करने पर विचार करें।

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

create word forms प्रोवाइडर को इम्प्लीमेंट करने से कई वास्तविक परिदृश्यों में सुधार हो सकता है:

  1. Search engines: “mouse” टाइप करने वाले उपयोगकर्ता को “mice” वाले दस्तावेज़ भी मिलने चाहिए। एक प्रोवाइडर ऐसे अनियमित रूप जेनरेट कर सकता है।
  2. Text analysis tools: जब सभी शब्द वैरिएंट्स पहचाने जाते हैं तो सेंटिमेंट या एंटिटी एक्सट्रैक्शन अधिक विश्वसनीय बन जाता है।
  3. Content management systems: ऑटोमैटिक टैग जेनरेशन में बहुवचन समानार्थी शब्द शामिल हो सकते हैं, जिससे SEO और इंटर्नल लिंकिंग में सुधार होता है।

परफॉर्मेंस विचार

जब आप प्रोवाइडर को प्रोडक्शन सिस्टम में एम्बेड करते हैं, तो इन टिप्स को ध्यान में रखें:

  • Cache frequently used forms: एक ही शब्द को बार‑बार पुनः गणना करने से बचने के लिए परिणाम मेमोरी में स्टोर करें।
  • Monitor JVM heap: बड़े इंडेक्स मेमोरी प्रेशर बढ़ा सकते हैं; -Xmx को तदनुसार ट्यून करें।
  • Use efficient collections: छोटे सेट्स के लिए ArrayList काम करता है, लेकिन हजारों फ़ॉर्म्स के लिए डुप्लिकेट जल्दी हटाने हेतु HashSet पर विचार करें।

सर्वोत्तम प्रथाएँ

  • लाइब्रेरी को अपडेट रखें ताकि परफॉर्मेंस पैच का लाभ मिल सके।
  • प्रोवाइडर को वास्तविक क्वेरी लोड के साथ प्रोफ़ाइल करें ताकि बॉटलनेक्स जल्दी पता चल सकें।

निष्कर्ष

आपने अब Java में फ़ॉर्म कैसे जेनरेट करें को एक कस्टम SimpleWordFormsProvider के साथ GroupDocs.Search का उपयोग करके सीख लिया है। यह हल्का घटक सर्च परिणामों की प्रासंगिकता और कई एप्लिकेशन्स में भाषाई विश्लेषण की सटीकता को नाटकीय रूप से सुधार सकता है।

अगले कदम

  • अधिक परिष्कृत भाषाई नियमों (अनियमित बहुवचन, स्टेमिंग) के साथ प्रयोग करें।
  • प्रोवाइडर को इंडेक्सिंग पाइपलाइन में इंटीग्रेट करें और रिकॉल सुधार को मापें।
  • सिंनॉनिम डिक्शनरी और कस्टम एनालाइज़र जैसे अन्य GroupDocs.Search फीचर्स का अन्वेषण करें।

कार्यवाही के लिए कॉल: आज ही अपने प्रोजेक्ट में SimpleWordFormsProvider जोड़ें और देखें कि यह आपके सर्च अनुभव को कैसे समृद्ध करता है!

FAQ अनुभाग

Q: GroupDocs.Search for Java क्या है?
A: यह एक शक्तिशाली लाइब्रेरी है जो फुल‑टेक्स्ट सर्च, इंडेक्सिंग, और भाषाई फीचर्स प्रदान करती है—जिसमें कस्टम word‑form प्रोवाइडर को प्लग करने की क्षमता शामिल है।

Q: SimpleWordFormsProvider कैसे काम करता है?
A: यह सरल सफ़िक्स‑आधारित नियमों ( “s/es” हटाना, “y” को “is” में बदलना, और “s/es” जोड़ना) को लागू करके वैकल्पिक रूप जेनरेट करता है।

Q: क्या मैं word form जेनरेशन नियमों को कस्टमाइज़ कर सकता हूँ?
A: बिल्कुल। getWordForms मेथड को संशोधित करके अनियमित रूप, लोकेल‑स्पेसिफिक नियम, या बाहरी डिक्शनरी के इंटीग्रेशन को शामिल करें।

Q: इस फीचर के कुछ सामान्य अनुप्रयोग क्या हैं?
A: सर्च इंजन, टेक्स्ट‑एनालिसिस पाइपलाइन, और CMS प्लेटफ़ॉर्म को singular/plural वैरिएंट्स को पहचानने से लाभ मिलता है।

Q: प्रोडक्शन उपयोग के लिए क्या मुझे कमर्शियल लाइसेंस चाहिए?
A: हाँ—जबकि ट्रायल आपको API एक्सप्लोर करने देता है, खरीदा गया लाइसेंस उपयोग सीमाओं को हटाता है और सपोर्ट देता है।


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

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