GroupDocs.Search for Java के साथ कुशल दस्तावेज़ खोज में महारत हासिल करना

हजारों PDFs, Word फ़ाइलों या स्प्रेडशीट्स में सही अंश ढूँढ़ना ऐसा लगता है जैसे घास के ढेर में सुई खोज रहे हों। How to create index जल्दी से बनाना और उस सुई को पुनः प्राप्त करना ही एक दस्तावेज़‑खोज समाधान को मूल्यवान बनाता है। इस ट्यूटोरियल में आप सीखेंगे कि GroupDocs.Search for Java, एक हाई‑परफ़ॉर्मेंस java सर्च लाइब्रेरी, का उपयोग करके create index, add documents to index, और extract text from documents को फ़ाइलों, स्ट्रीम्स, स्ट्रिंग्स और स्ट्रक्चर्ड डेटा जैसे कई फ़ॉर्मेट में कैसे किया जाता है। अंत तक आपके पास एक प्रोडक्शन‑रेडी इंडेक्सिंग पाइपलाइन होगी जो बड़े दस्तावेज़ संग्रह को स्केल करती है जबकि मेमोरी उपयोग कम रखती है।

त्वरित उत्तर

  • मुख्य उद्देश्य क्या है? इंडेक्स जल्दी बनाने (how to create index) और दस्तावेज़ सामग्री को तुरंत पुनः प्राप्त करने के लिए।
  • मुझे कौन सी लाइब्रेरी उपयोग करनी चाहिए? The GroupDocs.Search for Java java search library.
  • क्या मैं टेक्स्ट को फ़ाइल में आउटपुट कर सकता हूँ? Yes – the library provides output text to file adapters for HTML, plain text, and more.
  • क्या संरचित निष्कर्षण समर्थित है? Absolutely – use the structured text extraction adapter to get field‑level data.
  • क्या मुझे लाइसेंस की आवश्यकता है? ट्रायल लाइसेंस विकास के लिए काम करता है; प्रोडक्शन डिप्लॉयमेंट के लिए स्थायी लाइसेंस आवश्यक है।

आप क्या सीखेंगे

  • GroupDocs.Search for Java का उपयोग करके how to create index और add documents to index कैसे करें।
  • फ़ाइल, स्ट्रीम, स्ट्रिंग और संरचित फ़ॉर्मेट्स के लिए output text to file तकनीकें।
  • प्रदर्शन‑ऑप्टिमाइज़ेशन टिप्स जो इंडेक्सिंग को तेज़ और मेमोरी‑कुशल रखती हैं।
  • वास्तविक‑दुनिया के परिदृश्य जहाँ ये फीचर चमकते हैं, जैसे कानूनी‑अनुबंध रिपॉज़िटरी और शैक्षणिक‑पेपर आर्काइव।

GroupDocs.Search for Java का उपयोग क्यों करें?

GroupDocs.Search 50+ इनपुट और आउटपुट फ़ॉर्मेट को सपोर्ट करता है – जिसमें DOCX, XLSX, PPTX, PDF, HTML, और सामान्य इमेज प्रकार शामिल हैं – और पूरी फ़ाइल को मेमोरी में लोड किए बिना मल्टी‑गिगाबाइट फ़ाइलों को इंडेक्स कर सकता है। बेंचमार्क दिखाते हैं कि 1 GB दस्तावेज़ संग्रह को मानक 8‑कोर सर्वर पर 2 मिनट से कम समय में इंडेक्स किया जा सकता है, जबकि सर्च क्वेरी 100 ms से कम में परिणाम देती हैं।

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

  • Java Development Kit (JDK) 8 या नया।
  • GroupDocs.Search for Java लाइब्रेरी (ट्रायल या लाइसेंस्ड)।
  • Maven डिपेंडेंसी मैनेजमेंट के लिए।
  • बेसिक Java I/O नॉलेज।

GroupDocs.Search for Java सेटअप करना

सबसे पहले, अपने प्रोजेक्ट के pom.xml में GroupDocs.Search Maven रिपॉज़िटरी और डिपेंडेंसी जोड़ें। यह कदम सुनिश्चित करता है कि लाइब्रेरी क्लासपाथ पर उपलब्ध हो।

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>

जो सीधे डाउनलोड पसंद करते हैं, आप नवीनतम संस्करण यहाँ से प्राप्त कर सकते हैं: GroupDocs.Search for Java रिलीज़.

लाइसेंस प्राप्ति
प्रोडक्शन में GroupDocs.Search उपयोग करने के लिए, आधिकारिक साइट से ट्रायल या स्थायी लाइसेंस प्राप्त करें। ट्रायल लाइसेंस विकास और परीक्षण के लिए बिना प्रतिबंध के है।

कस्टम सेटिंग्स के साथ java में इंडेक्स कैसे बनाएं

Index वह कोर क्लास है जो खोज योग्य दस्तावेज़ संग्रह का प्रतिनिधित्व करता है।
IndexSettings इंडेक्स के लिए संपीड़न जैसी विकल्पों को कॉन्फ़िगर करता है।
CompressionLevel संग्रहित टेक्स्ट पर लागू संपीड़न स्तर को परिभाषित करता है।

संपीड़न सक्षम करके Index ऑब्जेक्ट लोड करें, इसे एक फ़ोल्डर की ओर इंगित करें, और सभी समर्थित फ़ाइलें जोड़ें। यह प्रत्यक्ष‑उत्तर पैराग्राफ आपको ठीक‑ठीक बताता है कि क्या करना है: Index को new Index("indexFolder", new IndexSettings().setCompressionLevel(CompressionLevel.High)) के साथ इंस्टैंसिएट करें, फिर index.add("documentsFolder", true) को कॉल करके हर समर्थित फ़ाइल को पुनरावर्ती रूप से इंडेक्स करें। हाई‑कम्प्रेशन मोड डिस्क पर आकार को 70 % तक कम करता है जबकि सर्च स्पीड तेज़ रहती है।

इंडेक्स बनाना किसी भी सर्च‑ड्रिवन एप्लिकेशन की नींव है। नीचे दिया गया उदाहरण आपको प्रक्रिया से परिचित कराता है, प्रत्येक सेटिंग की व्याख्या करता है, और दिखाता है कि कैसे सत्यापित करें कि इंडेक्स सफलतापूर्वक बनाया गया है।

इंडेक्स निर्माण और दस्तावेज़ इंडेक्सिंग

सारांश

Index क्लास एक कोर कंपोनेंट है जो खोज योग्य दस्तावेज़ संग्रह का प्रतिनिधित्व करता है। यह तेज़ लुक‑अप के लिए इनवर्टेड इंडेक्स, टर्म डिक्शनरी, और मेटाडेटा संग्रहीत करता है।

import com.groupdocs.search.*;
import java.io.ByteArrayOutputStream;

public class FeatureIndexCreation {
    public static void main(String[] args) {
        // Define the folder paths for indexing
        String indexFolder = YOUR_DOCUMENT_DIRECTORY + "/OutputAdapters/Index";
        String documentsFolder = YOUR_DOCUMENT_DIRECTORY + "/DocumentsPath";  // Adjust as needed

        // Creating an index settings instance with compression enabled
        IndexSettings settings = new IndexSettings();
        settings.setTextStorageSettings(new TextStorageSettings(Compression.High));

        // Creating the index in the specified folder
        Index index = new Index(indexFolder, settings);

        // Adding documents from the specified folder to the index
        index.add(documentsFolder);
    }
}

व्याख्या

  • Index Settings: हम टेक्स्ट स्टोरेज के लिए high compression सक्षम करते हैं, डिस्क स्पेस उपयोग को अनुकूलित करते हुए क्वेरी स्पीड से समझौता नहीं करते।
  • Adding Documents: index.add() मेथड adds documents to index, फ़ोल्डर को पुनरावर्ती रूप से स्कैन करता है और सभी समर्थित फ़ॉर्मेट को स्वचालित रूप से संभालता है।

फ़ाइल, स्ट्रीम, स्ट्रिंग और संरचित फ़ॉर्मेट्स में टेक्स्ट कैसे आउटपुट करें

इंडेक्सिंग के बाद, आपको अक्सर दस्तावेज़ का कच्चा या फ़ॉर्मेटेड टेक्स्ट निकालना पड़ता है। GroupDocs.Search चार एडॉप्टर प्रदान करता है जो निकाले गए कंटेंट को फ़ाइल, इन‑मेमा स्ट्रीम, Java String, या संरचित ऑब्जेक्ट मॉडल में लिखने की अनुमति देते हैं।

फ़ाइल में दस्तावेज़ टेक्स्ट आउटपुट

FileOutputAdapter चुने हुए फ़ॉर्मेट में निकाले गए दस्तावेज़ टेक्स्ट को फ़ाइल में लिखता है।

सारांश

FileOutputAdapter चुने हुए फ़ॉर्मेट (HTML, plain text, आदि) में निकाले गए टेक्स्ट को सीधे डिस्क पर फ़ाइल में लिखता है। यह मानव‑पठनीय रिपोर्ट बनाने या डाउनस्ट्रीम प्रोसेसिंग पाइपलाइन को फीड करने के लिए उपयोगी है।

import com.groupdocs.search.*;

public class FeatureOutputToFile {
    public static void main(String[] args) {
        String indexFolder = YOUR_DOCUMENT_DIRECTORY + "/OutputAdapters/Index";
        Index index = new Index(indexFolder);

        // Assuming documents are already indexed, retrieve the first document
        DocumentInfo[] documents = index.getIndexedDocuments();
        if (documents.length > 0) {
            DocumentInfo document = documents[0];

            // Output document text to an HTML file
            FileOutputAdapter fileOutputAdapter = new FileOutputAdapter(OutputFormat.Html, YOUR_OUTPUT_DIRECTORY + "/Text.html");
            index.getDocumentText(document, fileOutputAdapter);
        }
    }
}

व्याख्या

  • FileOutputAdapter: इंडेक्स्ड दस्तावेज़ के टेक्स्ट को HTML में बदलता है और निर्दिष्ट फ़ाइल पाथ पर लिखता है, हेडिंग और टेबल जैसी बेसिक फ़ॉर्मेटिंग को संरक्षित करता है।

स्ट्रीम में दस्तावेज़ टेक्स्ट आउटपुट

StreamOutputAdapter निकाले गए दस्तावेज़ टेक्स्ट को ByteArrayOutputStream में स्ट्रीम करता है बिना अस्थायी फ़ाइल बनाए।

सारांश

जब आपको कंटेंट केवल अस्थायी रूप से चाहिए—जैसे HTTP पर भेजना या वेब रिस्पॉन्स में एम्बेड करना—तो StreamOutputAdapter का उपयोग करें। यह टेक्स्ट को ByteArrayOutputStream में स्ट्रीम करता है, अस्थायी फ़ाइल बनाने के ओवरहेड से बचाता है।

import com.groupdocs.search.*;
import java.io.ByteArrayOutputStream;

public class FeatureOutputToStream {
    public static void main(String[] args) {
        String indexFolder = YOUR_DOCUMENT_DIRECTORY + "/OutputAdapters/Index";
        Index index = new Index(indexFolder);

        // Assuming documents are already indexed, retrieve the first document
        DocumentInfo[] documents = index.getIndexedDocuments();
        if (documents.length > 0) {
            DocumentInfo document = documents[0];

            // Output document text to a stream in HTML format
            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            StreamOutputAdapter streamOutputAdapter = new StreamOutputAdapter(OutputFormat.Html, stream);
            index.getDocumentText(document, streamOutputAdapter);
        }
    }
}

व्याख्या

  • StreamOutputAdapter: दस्तावेज़ के टेक्स्ट को ByteArrayOutputStream में स्ट्रीम करता है, जिससे फ़ाइल सिस्टम को छुए बिना लचीला हैंडलिंग संभव होता है।

स्ट्रिंग में दस्तावेज़ टेक्स्ट आउटपुट

StringOutputAdapter पूरे दस्तावेज़ टेक्स्ट को एकल String ऑब्जेक्ट में कैप्चर करता है।

सारांश

त्वरित लॉगिंग, डिबगिंग, या UI डिस्प्ले के लिए, StringOutputAdapter पूरे दस्तावेज़ टेक्स्ट को एकल String ऑब्जेक्ट में कैप्चर करता है।

import com.groupdocs.search.*;

public class FeatureOutputToString {
    public static void main(String[] args) {
        String indexFolder = YOUR_DOCUMENT_DIRECTORY + "/OutputAdapters/Index";
        Index index = new Index(indexFolder);

        // Assuming documents are already indexed, retrieve the first document
        DocumentInfo[] documents = index.getIndexedDocuments();
        if (documents.length > 0) {
            DocumentInfo document = documents[0];

            // Output document text to a string in HTML format
            StringOutputAdapter stringOutputAdapter = new StringOutputAdapter(OutputFormat.Html);
            index.getDocumentText(document, stringOutputAdapter);
            String result = stringOutputAdapter.getResult();
        }
    }
}

व्याख्या

  • StringOutputAdapter: दस्तावेज़ के टेक्स्ट को String में कैप्चर करता है, जिससे इसे लॉग, कंसोल आउटपुट, या UI कंपोनेंट्स में एम्बेड करना आसान हो जाता है।

संरचित फ़ॉर्मेट में दस्तावेज़ टेक्स्ट आउटपुट

StructuredOutputAdapter एक समृद्ध ऑब्जेक्ट मॉडल लौटाता है जिसमें पैराग्राफ, टेबल, और कस्टम मेटाडेटा शामिल होते हैं।

सारांश

StructuredOutputAdapter एक समृद्ध ऑब्जेक्ट मॉडल लौटाता है जिसमें पैराग्राफ, टेबल, और कस्टम मेटाडेटा होते हैं। यह फ़ॉर्मेट डाउनस्ट्रीम नेचुरल‑लैंग्वेज‑प्रोसेसिंग (NLP) या डेटा‑एक्सट्रैक्शन वर्कफ़्लो के लिए आदर्श है।

import com.groupdocs.search.*;

public class FeatureOutputToStructure {
    public static void main(String[] args) {
        String indexFolder = YOUR_DOCUMENT_DIRECTORY + "/OutputAdapters/Index";
        Index index = new Index(indexFolder);

        // Assuming documents are already indexed, retrieve the first document
        DocumentInfo[] documents = index.getIndexedDocuments();
        if (documents.length > 0) {
            DocumentInfo document = documents[0];

            // Output document text to a structured format like PlainText
            StructuredOutputAdapter structuredOutputAdapter = new StructuredOutputAdapter(OutputFormat.PlainText);
            index.getDocumentText(document, structuredOutputAdapter);
        }
    }
}

व्याख्या

  • StructuredOutputAdapter: दस्तावेज़ टेक्स्ट को structured text extraction फ़ॉर्मेट में निकालता है, जिससे फाइन‑ग्रेन विश्लेषण, फ़ील्ड एक्सट्रैक्शन, और मशीन‑लर्निंग पाइपलाइन के साथ इंटीग्रेशन संभव होता है।

सामान्य समस्याएँ और समाधान

समस्याकारणसमाधान
इंडेक्स नहीं बनाया गयागलत फ़ोल्डर पाथ या लिखने की अनुमति नहीं हैindexFolder मौजूद है और एप्लिकेशन को लिखने की अनुमति है, यह सत्यापित करें
कोई दस्तावेज़ नहीं मिलाindex.add() नहीं कॉल किया गया या स्रोत फ़ोल्डर गलतdocumentsFolder सही डायरेक्टरी की ओर इशारा करता है और समर्थित फ़ाइल प्रकार रखता है, यह सुनिश्चित करें
आउटपुट फ़ाइल खालीआउटपुट एडॉप्टर पाथ अमान्य है या डायरेक्टरी नहीं हैचलाने से पहले लक्ष्य डायरेक्टरी (YOUR_OUTPUT_DIRECTORY) बनाएं
बड़ी फ़ाइलों से मेमोरी स्पाइकपूरी फ़ाइल को मेमोरी में लोड करनाडेटा को क्रमिक रूप से प्रोसेस करने के लिए StreamOutputAdapter का उपयोग करें

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

Q: क्या मैं GroupDocs.Search को अन्य JVM भाषाओं जैसे Kotlin या Scala के साथ उपयोग कर सकता हूँ?
A: हाँ, लाइब्रेरी शुद्ध Java है और किसी भी JVM भाषा के साथ सहजता से काम करती है।

Q: संपीड़न सर्च स्पीड को कैसे प्रभावित करता है?
A: हाई कम्प्रेशन डिस्क उपयोग को 70 % तक कम करता है और इंडेक्सिंग के दौरान केवल न्यूनतम CPU ओवरहेड जोड़ता है; सामान्य वर्कलोड के लिए क्वेरी लेटेंसी 100 ms से कम रहती है।

Q: क्या मौजूदा इंडेक्स को पुनः निर्माण किए बिना अपडेट करना संभव है?
A: बिल्कुल। नई फ़ाइलों के लिए index.add() और पुरानी फ़ाइलों को हटाने के लिए index.remove() का उपयोग करें, जिससे इन्क्रीमेंटल अपडेट संभव होते हैं।

Q: नैचुरल‑लैंग्वेज‑प्रोसेसिंग पाइपलाइन के लिए कौन सा आउटपुट फ़ॉर्मेट सबसे अच्छा है?
A: PlainText परिणाम structured text extraction एडॉप्टर से साफ़, भाषा‑निर्पेक्ष कंटेंट देता है जो NLP कार्यों के लिए आदर्श है।

Q: क्या विकास और परीक्षण के लिए लाइसेंस की आवश्यकता है?
A: विकास और मूल्यांकन के लिए एक मुफ्त ट्रायल लाइसेंस पर्याप्त है; प्रोडक्शन डिप्लॉयमेंट के लिए खरीदा गया लाइसेंस आवश्यक है।

निष्कर्ष

अब आपके पास एक पूर्ण, प्रोडक्शन‑रेडी वर्कफ़्लो है how to create index, दस्तावेज़ जोड़ने, और उनकी टेक्स्ट को हर फ़ॉर्मेट में निकालने के लिए जिसकी आपको ज़रूरत हो सकती है। पहले Index को संपीड़न के साथ कॉन्फ़िगर करें, अपने दस्तावेज़ संग्रह को जोड़ें, और अपने डाउनस्ट्रीम परिदृश्य के लिए उपयुक्त आउटपुट एडॉप्टर चुनें—चाहे वह HTML रिपोर्ट बनाना हो, NLP मॉडल को फीड करना हो, या वेब क्लाइंट को कंटेंट स्ट्रीम करना हो। इन्क्रीमेंटल अपडेट API के साथ प्रयोग करें ताकि आपका इंडेक्स महंगे रीबिल्ड्स के बिना ताज़ा रहे, और आप किसी भी दस्तावेज़ रिपॉज़िटरी में तेज़, विश्वसनीय सर्च का आनंद लेंगे।


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

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