जावा को इंडेक्स कैसे करें – GroupDocs के साथ तेज़ दस्तावेज़ खोज

यदि आप how to index java फ़ाइलों को प्रभावी ढंग से इंडेक्स करने के बारे में सोच रहे हैं, तो आप सही जगह पर हैं। आज की डेटा‑ड्रिवन दुनिया में, सही दस्तावेज़ को जल्दी खोजने से मैन्युअल काम में कई घंटे बच सकते हैं। GroupDocs.Search for Java आपको फ़ाइलों के फ़ोल्डर को एक खोज योग्य इंडेक्स में बदलने का सरल तरीका देता है, जिससे आप दस्तावेज़ों को इंडेक्स में जोड़ सकते हैं, इंडेक्स से दस्तावेज़ हटाए जा सकते हैं, और फ़ाइल सिस्टम से दस्तावेज़ लोड कर सकते हैं केवल कुछ पंक्तियों के कोड से। यह ट्यूटोरियल सेटअप, इंडेक्सिंग, सर्च और क्लीन‑अप के माध्यम से आपका मार्गदर्शन करता है ताकि आप किसी भी Java एप्लिकेशन में तेज़ दस्तावेज़ खोज को एकीकृत कर सकें।

त्वरित उत्तर

  • मुख्य उद्देश्य क्या है? Java दस्तावेज़ों को प्रभावी ढंग से इंडेक्स और खोजें।
  • कौनसी लाइब्रेरी आवश्यक है? GroupDocs.Search for Java (v25.4+).
  • क्या मुझे लाइसेंस चाहिए? एक मुफ्त ट्रायल या अस्थायी लाइसेंस उपलब्ध है; उत्पादन के लिए स्थायी लाइसेंस आवश्यक है।
  • क्या मैं इंडेक्स से दस्तावेज़ हटा सकता हूँ? हाँ, delete मेथड को दस्तावेज़ कुंजियों के साथ उपयोग करके।
  • क्या Apache Commons IO अनिवार्य है? फ़ाइल हैंडलिंग यूटिलिटीज़ के लिए यह अनुशंसित है।

“how to index java” क्या है?

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

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

GroupDocs.Search 50+ इनपुट और आउटपुट फॉर्मेट का समर्थन करता है—जिसमें PDF, DOCX, XLSX, PPTX, HTML, और सामान्य इमेज प्रकार शामिल हैं—और कई‑सौ‑पृष्ठ दस्तावेज़ों को पूरी फ़ाइल को मेमोरी में लोड किए बिना प्रोसेस कर सकता है। इसके अनुकूलित एल्गोरिदम 1 मिलियन दस्तावेज़ों तक के डेटा सेट के लिए 100 ms से कम समय में क्वेरी प्रतिक्रियाएँ प्रदान करते हैं, जिससे यह एंटरप्राइज़‑ग्रेड सर्च समाधान के लिए स्केलेबल विकल्प बनता है।

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

  • GroupDocs.Search for Java (संस्करण 25.4 या नया)।
  • Apache Commons IO सुविधाजनक फ़ाइल यूटिलिटीज़ के लिए।
  • JDK 8 या उससे ऊपर और IntelliJ IDEA या Eclipse जैसे IDE।
  • बुनियादी Java ज्ञान और वैकल्पिक रूप से Maven की परिचितता।

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

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>

Pro tip: संस्करण संख्या को नवीनतम रिलीज़ के साथ सिंक रखें ताकि प्रदर्शन सुधारों से लाभ मिल सके।

डायरेक्ट डाउनलोड (यदि आप Maven का उपयोग नहीं करना चाहते हैं)

आप आधिकारिक साइट से नवीनतम JAR भी डाउनलोड कर सकते हैं: GroupDocs.Search for Java रिलीज़।

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

  • Free trial: लाइसेंस कुंजी के बिना लाइब्रेरी का परीक्षण करें।
  • Temporary license: विस्तारित मूल्यांकन के लिए एक अनुरोध करें।
  • Full license: उत्पादन डिप्लॉयमेंट के लिए आवश्यक है।

बेसिक इनिशियलाइज़ेशन

लाइब्रेरी के सही लोड होने की पुष्टि करने के लिए एक सरल Java क्लास बनाएं:

import com.groupdocs.search.*;

public class DocumentIndexing {
    public static void main(String[] args) {
        Index index = new Index("YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Indexing\\DeleteIndexedDocuments");
        System.out.println("GroupDocs.Search initialized successfully.");
    }
}

इस प्रोग्राम को चलाने पर पुष्टि संदेश प्रिंट होना चाहिए, जो दर्शाता है कि इंडेक्स फ़ोल्डर तैयार है।

इंडेक्स में दस्तावेज़ जोड़ने का तरीका

Document क्लास एक खोज योग्य एंटिटी को दर्शाता है जो फ़ाइल की बाइनरी सामग्री और मेटाडेटा रखती है।
दस्तावेज़ जोड़ने के लिए, एक Document इंस्टेंस बनाएं जो फ़ाइल के बाइट्स को रैप करे और एक अनूठी कुंजी असाइन करे, फिर index.add(document) को कॉल करें। लाइब्रेरी टेक्स्ट निकालती है, टोकनाइज़ करती है, और पोस्टिंग्स को स्वचालित रूप से इंडेक्स फ़ोल्डर में संग्रहीत करती है। यह ऑपरेशन फ़ाइल आकार के सापेक्ष रैखिक समय में चलता है और बड़े फ़ाइलों के लिए लेज़ी लोडिंग का समर्थन करता है।

सीधा उत्तर:

Index index = new Index("YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Indexing\\DeleteIndexedDocuments", true);
  • पहला आर्ग्यूमेंट वह फ़ोल्डर है जहाँ इंडेक्स फ़ाइलें संग्रहीत की जाएँगी।
  • दूसरा आर्ग्यूमेंट (true) GroupDocs को बताता है कि यदि फ़ोल्डर मौजूद नहीं है तो उसे बनाएं और मौजूदा इंडेक्स को स्वचालित रूप से अपडेट करें।
String filePath = "YOUR_DOCUMENT_DIRECTORY\\English.docx";
DocumentLoader documentLoader = new DocumentLoader(filePath);
Document document = Document.createLazy(DocumentSourceKind.Stream, documentLoader.getDocumentKey(), documentLoader);
Document[] documents = new Document[]{document};
index.add(documents, new IndexingOptions());
  • DocumentLoader (बाद में परिभाषित) फ़ाइल पढ़ता है और एक अनूठी कुंजी प्रदान करता है।
  • createLazy सुनिश्चित करता है कि बड़े फ़ाइलों को कुशलता से प्रोसेस किया जाए, सामग्री केवल आवश्यकता पड़ने पर लोड की जाए।

फ़ाइल सिस्टम से दस्तावेज़ लोड करने का तरीका

DocumentLoader यूटिलिटी क्लास डिस्क से फ़ाइल पढ़ता है और एक स्थिर पहचानकर्ता के साथ संबंधित Document ऑब्जेक्ट बनाता है।
फ़ाइलें लोड करने के लिए, लोडर फ़ाइल के बाइट्स पढ़ता है, एक अनूठी कुंजी बनाता है (उदाहरण के लिए, पाथ का हैश), और एक Document इंस्टेंस बनाता है। इस ऑब्जेक्ट को फिर index.add(document) को पास किया जा सकता है। एक समर्पित लोडर का उपयोग फ़ाइल‑सिस्टम संबंधी चिंताओं को अलग करता है, जिससे इंडेक्सिंग कोड पुन: उपयोग योग्य और विभिन्न स्टोरेज बैक‑एंड्स में परीक्षण करने में आसान बनता है।

सीधा उत्तर:

class DocumentLoader {
    private final String filePath;
    private final String documentKey;

    public DocumentLoader(String filePath) {
        this.filePath = filePath;
        documentKey = FilenameUtils.getName(filePath);
    }

    public String getDocumentKey() { return documentKey; }

    public Document loadDocument() throws IOException {
        Path path = Paths.get(filePath);
        byte[] buffer = Files.readAllBytes(path);
        ByteArrayInputStream stream = new ByteArrayInputStream(buffer);
        return Document.createFromStream(documentKey, new Date(System.currentTimeMillis()), "." + FilenameUtils.getExtension(filePath), stream);
    }
}

इंडेक्स में कीवर्ड सर्च कैसे करें

SearchQuery क्लास उपयोगकर्ता की क्वेरी स्ट्रिंग को समेटे रखती है, जबकि SearchResult मिलते-जुलते दस्तावेज़ IDs, स्निपेट्स, और प्रासंगिकता स्कोर रखती है।
इच्छित कीवर्ड्स के साथ एक SearchQuery बनाएं और वैकल्पिक रूप से फज़ी मैचिंग या फ़िल्टर कॉन्फ़िगर करें, फिर index.search(query) को कॉल करें। यह मेथड एक SearchResult ऑब्जेक्ट लौटाता है जिसमें प्रत्येक मिलते दस्तावेज़ का पहचानकर्ता, हाइलाइटेड अंश, और प्रासंगिकता स्कोर शामिल है। आप इन परिणामों पर इटररेट करके स्निपेट्स दिखा सकते हैं या मैचों को आगे प्रोसेस कर सकते हैं।

सीधा उत्तर:

String query = "moment";
SearchResult searchResult1 = index.search(query);
  • किसी भी टेक्स्ट स्ट्रिंग को search में पास करें और एक SearchResult प्राप्त करें जिसमें मिलते दस्तावेज़ IDs, स्निपेट्स, और प्रासंगिकता स्कोर हों।

इंडेक्स से दस्तावेज़ हटाने का तरीका

UpdateOptions क्लास आपको नियंत्रित करने देता है कि डिलीशन जैसी परिवर्तन इंडेक्स पर कैसे लागू हों।
index.delete(keys) को अनूठी दस्तावेज़ कुंजियाँ प्रदान करें, और लाइब्रेरी उन कुंजियों से जुड़े सभी पोस्टिंग्स को हटा देती है। आप एक UpdateOptions इंस्टेंस पास कर सकते हैं यह निर्दिष्ट करने के लिए कि डिलीशन तुरंत लागू हों या बेहतर प्रदर्शन के लिए बैच में। डिलीशन के बाद, इंडेक्स पूरी रीबिल्ड की आवश्यकता के बिना सुसंगत रहता है।

सीधा उत्तर:

String[] documentKeys = new String[]{documentLoader.getDocumentKey()};
DeleteResult deleteResult = index.delete(new UpdateOptions(), documentKeys);
  • आप उन दस्तावेज़ों की कुंजियाँ प्रदान करें जिन्हें आप हटाना चाहते हैं।
  • UpdateOptions आपको नियंत्रित करने देता है कि डिलीशन कैसे लागू हो (जैसे, तुरंत बनाम बैच)।

डिलीशन के बाद इंडेक्स किए गए दस्तावेज़ कैसे प्राप्त करें

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

सीधा उत्तर:

DocumentInfo[] indexedDocuments2 = index.getIndexedDocuments();
  • यह कॉल वर्तमान में इंडेक्स में मौजूद दस्तावेज़ों की सूची लौटाता है, जिससे आप डिलीशन की सफलता की पुष्टि कर सकते हैं।

Java सर्च प्रदर्शन टिप्स

java search performance को अनुकूलित करने में तीन प्रमुख कार्य शामिल हैं: (1) बड़े इन्सर्ट या डिलीशन के बाद index.optimize() चलाएँ ताकि पोस्टिंग फ़ाइलें संकुचित हों, (2) 10 MB से बड़ी फ़ाइलों के लिए लेज़ी लोडिंग सक्षम करें ताकि OutOfMemory त्रुटियों से बचा जा सके, और (3) पर्याप्त JVM हीप आवंटित करें (जैसे, मध्यम‑स्केल वर्कलोड के लिए -Xmx2g)। इन प्रथाओं का पालन करने से क्वेरी लेटेंसी 100 ms से नीचे रहती है, भले ही इंडेक्स बढ़े।

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

  1. Enterprise document portals – कर्मचारी सेकंडों में नीतियों, अनुबंधों या मैनुअल्स को खोजते हैं।
  2. Legal case management – वकील हजारों PDF और Word फ़ाइलों में पूर्वनिर्धारित क्लॉज़ को जल्दी खोजते हैं।
  3. Digital libraries – विश्वविद्यालय शोध पत्रों और थीसिस पर फुल‑टेक्स्ट सर्च प्रदान करते हैं।

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

समस्याकारणसमाधान
कोई परिणाम नहीं मिलाक्वेरी शब्द इंडेक्स नहीं किए गए या स्टॉप‑वर्ड फ़िल्टर किए गएIndexingOptions सत्यापित करें और स्टॉप‑वर्ड सूची को समायोजित करें
Out‑of‑memory त्रुटियाँबड़ी फ़ाइलें तुरंत लोड की गईंDocument.createLazy पर स्विच करें या JVM हीप बढ़ाएँ
हटाए गए दस्तावेज़ अभी भी दिखाई दे रहे हैंडिलीशन के बाद इंडेक्स रीफ़्रेश नहीं हुआindex.optimize() कॉल करें या इंडेक्स इंस्टेंस को पुनः खोलें

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

Q: क्या मैं PDFs, DOCX, और PPTX को साथ में इंडेक्स कर सकता हूँ?
A: हाँ, GroupDocs.Search बॉक्स से बाहर कई फॉर्मेट्स का समर्थन करता है, 50 से अधिक फ़ाइल प्रकारों को अतिरिक्त कन्वर्टर्स के बिना संभालता है।

Q: “delete documents from index” कैसे काम करता है?
A: delete मेथड निर्दिष्ट दस्तावेज़ कुंजियों के लिए पोस्टिंग्स को हटाता है और आंतरिक संरचनाओं को अपडेट करता है, जिससे इंडेक्स पूरी रीबिल्ड के बिना सुसंगत रहता है।

Q: क्या इंडेक्स आकार की निगरानी का कोई तरीका है?
A: index.getStatistics() का उपयोग करके दस्तावेज़ संख्या, कुल आकार, और अन्य उपयोगी मेट्रिक्स प्राप्त करें।

Q: क्या प्रत्येक डिलीशन के बाद पूरे इंडेक्स को रीबिल्ड करना आवश्यक है?
A: नहीं। डिलीशन क्रमिक होते हैं; केवल प्रभावित एंट्रीज़ हटाए जाते हैं, और आप समय‑समय पर index.optimize() कॉल करके प्रदर्शन को इष्टतम रख सकते हैं।

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

निष्कर्ष

अब आपके पास GroupDocs.Search for Java का उपयोग करके how to index java दस्तावेज़ों के लिए एक पूर्ण रोडमैप है—पर्यावरण सेटअप से लेकर, दस्तावेज़ों को इंडेक्स में जोड़ना, फ़ाइल सिस्टम से लोड करना, सर्च करना, डिलीट करना और इंडेक्स सामग्री की पुष्टि करना। इन चरणों को अपने एप्लिकेशन में एकीकृत करके, आप दस्तावेज़ खोज क्षमता में उल्लेखनीय सुधार करेंगे, सर्च लेटेंसी को घटाएँगे, और समग्र उत्पादकता को बढ़ाएँगे।

अगले कदम:

  • जटिल क्वेरीज़ (वाइल्डकार्ड, फज़ी मैचिंग) के साथ प्रयोग करें।
  • फ़ेसटेड सर्च, कस्टम एनालाइज़र, और मेटाडेटा इंडेक्सिंग जैसी उन्नत सुविधाओं का अन्वेषण करें।

इंडेक्सिंग का आनंद लें!


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

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