जावा में GroupDocs.Search के साथ रेगेक्स खोज कैसे करें
हजारों टेक्स्ट दस्तावेज़ों में खोज करना सूई को घास के ढेर में खोजने जैसा महसूस हो सकता है। How to regex search आसान हो जाता है जब आप भाषा के शक्तिशाली रेगुलर‑एक्सप्रेशन इंजन को GroupDocs.Search के साथ जोड़ते हैं, जो तेज़ पैटर्न मिलान के लिए एक इंडेक्स बनाता है। अगले कुछ मिनटों में आप देखेंगे कि लाइब्रेरी कैसे इंस्टॉल करें, एक इंडेक्स बनाएं, फ़ाइलें जोड़ें, और सरल टेक्स्ट‑आधारित तथा ऑब्जेक्ट‑ओरिएंटेड रेगेक्स क्वेरीज़ दोनों चलाएँ। अंत में आप किसी भी जावा एप्लिकेशन में मजबूत पैटर्न‑मैचिंग सर्च एम्बेड करने के लिए तैयार होंगे।
त्वरित उत्तर
- प्राथमिक लाइब्रेरी क्या है? GroupDocs.Search for Java
- मैं कैसे शुरू करूँ? Maven निर्भरता जोड़ें और एक
Indexऑब्जेक्ट बनाएं - क्या मैं रेगेक्स से सामग्री को फ़िल्टर कर सकता हूँ? हाँ – कंटेंट‑फ़िल्टरिंग परिदृश्यों के लिए रेगेक्स क्वेरीज़ का उपयोग करें
- क्या मुझे लाइसेंस चाहिए? उत्पादन उपयोग के लिए एक फ्री ट्रायल या टेम्पररी लाइसेंस आवश्यक है
- कौन सा JDK संस्करण समर्थित है? Java 8 या उससे ऊपर
रेगेक्स खोज क्या है?
रेगेक्स खोज आपको एक ही ऑपरेशन में कई फ़ाइलों में तिथियों, ईमेल पते, या दोहराए गए अक्षरों जैसे पैटर्न खोजने देती है। यह साधारण टेक्स्ट क्वेरी को एक शक्तिशाली, नियम‑आधारित स्कैनर में बदल देती है जो तुरंत सामग्री को निकाल या ब्लॉक कर सकता है।
रेगेक्स खोज के लिए GroupDocs.Search क्यों उपयोग करें?
GroupDocs.Search दस्तावेज़ों को एक बार इंडेक्स करता है और फिर प्रत्येक क्वेरी के लिए उस इंडेक्स को पुनः उपयोग करता है, जिससे कच्ची फ़ाइल स्कैनिंग की तुलना में 10× तक तेज़ खोज मिलती है। लाइब्रेरी 30+ फ़ाइल फ़ॉर्मेट (PDF, DOCX, XLSX, PPTX, TXT, HTML, आदि) का समर्थन करती है और पूरी फ़ाइल को मेमोरी में लोड किए बिना सैकड़ों‑पृष्ठ वाली फ़ाइलों को संभाल सकती है।
पूर्वापेक्षाएँ
- Java Development Kit (JDK) 8 या उससे ऊपर
- निर्भरता प्रबंधन के लिए Maven
- Java रेगुलर एक्सप्रेशन की बुनियादी परिचितता
आवश्यक लाइब्रेरी और निर्भरताएँ
अपने Maven प्रोजेक्ट में GroupDocs.Search जोड़ें:
<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 से डाउनलोड करें।
लाइसेंस प्राप्ति
एक फ्री ट्रायल या टेम्पररी लाइसेंस GroupDocs.License से प्राप्त करें और इसे एप्लिकेशन स्टार्ट‑अप पर लोड करें।
जावा के लिए GroupDocs.Search सेटअप करना
इंस्टॉलेशन जानकारी
- Maven इंटीग्रेशन: ऊपर दिखाए गए रिपॉजिटरी और निर्भरता को अपने
pom.xmlमें जोड़ें। - डायरेक्ट डाउनलोड: JAR फ़ाइलों को अपने प्रोजेक्ट के क्लासपाथ पर रखें।
- लाइसेंस एप्लिकेशन: एप्लिकेशन स्टार्ट‑अप पर लाइसेंस फ़ाइल लोड करें।
import com.groupdocs.search.*;
public class SearchSetup {
public static void main(String[] args) {
// Initialize the index by specifying a directory.
String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\RegularExpressionSearch";
Index index = new Index(indexFolder);
System.out.println("Index created successfully at: " + indexFolder);
}
}
मुख्य घटक
Index क्लास वह मुख्य घटक है जो आपके दस्तावेज़ों से निकाले गए सर्चेबल टोकन संग्रहीत करता है। यह मूल फ़ाइलों को दोबारा पढ़े बिना किसी भी शब्द या पैटर्न की तेज़ लुकअप सक्षम करता है।
इंडेक्स कैसे बनाएं
इंडेक्स बनाना सरल है: Index क्लास को उस फ़ोल्डर पाथ के साथ इंस्टैंशिएट करें जहाँ इंडेक्स फ़ाइलें संग्रहीत होंगी। कंस्ट्रक्टर पहली बार उपयोग पर आवश्यक डेटाबेस फ़ाइलें बनाता है और दस्तावेज़ जोड़ने व खोजने के लिए इंजन तैयार करता है। एक बार बन जाने के बाद, सभी क्वेरीज़ के लिए वही इंडेक्स पुनः उपयोग करें।
String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\RegularExpressionSearch";
Index index = new Index(indexFolder);
दस्तावेज़ कैसे जोड़ें
फ़ाइल को सर्चेबल बनाने के लिए, index.add को एक Document (या DocumentInfo) इंस्टेंस के साथ कॉल करें जो फ़ाइल पाथ की ओर इशारा करता हो। लाइब्रेरी सामग्री को पार्स करती है, टोकन निकालती है, और उन्हें इंडेक्स में संग्रहीत करती है। यह ऑपरेशन एकल फ़ाइलों या बैचों के लिए किया जा सकता है, और अपडेट क्रमिक रूप से मर्ज होते हैं।
index.add("YOUR_DOCUMENT_DIRECTORY");
system.out.println("Documents added to the index.");
टेक्स्ट रूप में रेगुलर एक्सप्रेशन खोज कैसे करें
RegexQuery एक रेगुलर‑एक्सप्रेशन आधारित खोज क्वेरी को परिभाषित करता है। एक साधारण‑टेक्स्ट पैटर्न के साथ RegexQuery लोड करें और इसे Index की search मेथड को पास करें। इंजन पैटर्न को इंडेक्स्ड टोकन के विरुद्ध मूल्यांकन करता है और मिलते-जुलते दस्तावेज़ रेफ़रेंसेज़ लौटाता है, जिससे एक‑बार की लुकअप तेज़ और सरल बनती है।
String query1 = "^((.)\\2{1,})";
ऑब्जेक्ट रूप में रेगुलर एक्सप्रेशन खोज कैसे करें
RegexQuery को एक ऑब्जेक्ट के रूप में भी बनाया जा सकता है और कई खोजों में पुनः उपयोग किया जा सकता है। क्वेरी को एक बार परिभाषित करें, केस‑इन्सेंसिटिविटी या फज़ी मैचिंग जैसे विकल्प कॉन्फ़िगर करें, और index.search को बार‑बार कॉल करें। यह तरीका तब प्रदर्शन को बेहतर बनाता है जब वही पैटर्न कई विभिन्न दस्तावेज़ सेटों पर लागू किया जाता है।
SearchResult result1 = index.search(query1);
system.out.println("Number of occurrences found: " + result1.getDocumentCount());
कंटेंट फ़िल्टरिंग रेगेक्स उपयोग केस
आप रेगेक्स का उपयोग स्वचालित रूप से उन सामग्री को ब्लॉक या फ़्लैग करने के लिए कर सकते हैं जो कुछ पैटर्न से मेल खाती हैं, जैसे:
- स्पैम फ़िल्टरिंग के लिए दोहराए गए अक्षरों का पता लगाना
- डेटा‑प्राइवेसी जांच के लिए क्रेडिट‑कार्ड‑जैसे क्रम खोजना
- डाउनस्ट्रीम प्रोसेसिंग के लिए तिथियों या IDs को निकालना
व्यावहारिक अनुप्रयोग
- Document Management Systems: पैटर्न (जैसे, इनवॉइस नंबर) द्वारा कॉन्ट्रैक्ट, इनवॉइस या पॉलिसी खोजें।
- Content Moderation: फ़ोरम या चैट ऐप्स में उपयोगकर्ता‑जनित टेक्स्ट को मॉडरेट करने के लिए रेगेक्स नियम लागू करें।
- Data Extraction: असंरचित PDFs या Word फ़ाइलों से ऑर्डर नंबर जैसी संरचित डेटा निकालें।
प्रदर्शन विचार
- Index Updates: जब भी स्रोत फ़ाइलें बदलें,
index.addकॉल करें ताकि परिणाम ताज़ा रहें। - Memory Management: 1 million से अधिक दस्तावेज़ों वाले कॉर्पोरा के लिए, हिप उपयोग को नियंत्रित रखने हेतु इन्क्रिमेंटल इंडेक्सिंग सक्षम करें।
- Regex Design: पैटर्न को संक्षिप्त रखें;
\d{4}-\d{2}-\d{2}जैसा पैटर्न.*जैसी वाइल्डकार्ड‑भारी अभिव्यक्ति से 3× तेज़ चलता है।
निष्कर्ष
अब आप GroupDocs.Search का उपयोग करके जावा में how to regex search करना जानते हैं, लाइब्रेरी इंस्टॉल करने और इंडेक्स बनाने से लेकर टेक्स्ट‑आधारित और ऑब्जेक्ट‑ओरिएंटेड क्वेरीज़ चलाने तक। ये तकनीकें आपको किसी भी जावा एप्लिकेशन में तेज़, पैटर्न‑सजग खोज जोड़ने देती हैं, चाहे आप दस्तावेज़ पोर्टल, अनुपालन स्कैनर, या डेटा‑माइनिंग पाइपलाइन बना रहे हों।
अक्सर पूछे जाने वाले प्रश्न
Q: GroupDocs.Search में टेक्स्ट‑आधारित और ऑब्जेक्ट‑आधारित रेगेक्स क्वेरीज़ में क्या अंतर है?
A: टेक्स्ट‑आधारित क्वेरीज़ तेज़ वन‑लाइनर होती हैं, जबकि ऑब्जेक्ट‑आधारित क्वेरीज़ पुनः उपयोग योग्य, टाइप‑सेफ परिभाषाएँ प्रदान करती हैं जिन्हें कई खोजों में संग्रहीत और पुनः उपयोग किया जा सकता है।
Q: क्या GroupDocs.Search PDFs या Excel फ़ाइलों जैसे नॉन‑टेक्स्ट दस्तावेज़ों को इंडेक्स कर सकता है?
A: हाँ, लाइब्रेरी PDFs, DOCX, XLSX, PPTX, और 30 से अधिक अन्य फ़ॉर्मेट्स से सर्चेबल टेक्स्ट निकालती है।
Q: नई फ़ाइलें जोड़ने के बाद मौजूदा सर्च इंडेक्स को कैसे अपडेट करूँ?
A: नई या संशोधित दस्तावेज़ों के साथ index.add कॉल करें; लाइब्रेरी पूरे इंडेक्स को पुनः बनाये बिना परिवर्तन मर्ज कर देगी।
Q: GroupDocs.Search के साथ रेगेक्स उपयोग करते समय सामान्य pitfalls क्या हैं?
A: बहुत व्यापक पैटर्न (जैसे, .*) प्रदर्शन गिरावट का कारण बन सकते हैं, और गलत अभिव्यक्तियाँ कोई परिणाम नहीं दे सकतीं। हमेशा पहले एक सैंपल सेट पर पैटर्न टेस्ट करें।
Q: अधिक उन्नत GroupDocs.Search ट्यूटोरियल्स कहाँ मिल सकते हैं?
A: गहरी गाइड्स, API रेफ़रेंसेज़, और सैंपल प्रोजेक्ट्स के लिए GroupDocs Documentation देखें।
अंतिम अपडेट: 2026-07-31
परीक्षित संस्करण: GroupDocs.Search 25.4
लेखक: GroupDocs
SearchQuery query2 = SearchQuery.createRegexQuery("^(.)\\1{1,}");
SearchResult result2 = index.search(query2);
system.out.println("Occurrences found using object form: " + result2.getDocumentCount());