यदि आपके पास समझने के लिए 1M फ़ाइलें हैं, तो आप (सर्वोत्तम मुझे पता है) नियमित अभिव्यक्ति के साथ प्रत्येक के माध्यम से जाना होगा।
सभी उद्देश्यों और उद्देश्यों के लिए, यदि आप LIKE ऑपरेटर या रेगुलर एक्सप्रेशन का उपयोग करके बड़े पैमाने पर क्वेरी करते हैं, तो आप टेबल पंक्तियों पर एक ही काम करने जा रहे हैं।
ग्रेप के साथ मेरा अपना अनुभव यह है कि मैं शायद ही कभी किसी ऐसी चीज की तलाश करता हूं जिसमें कम से कम एक पूर्ण शब्द न हो, हालांकि, आप उस सेट को कम करने के लिए डेटाबेस का लाभ उठा सकते हैं जिसमें आप खोज रहे हैं।
MySQL में मूल पूर्ण पाठ खोज सुविधाएं हैं, लेकिन मैं इसके खिलाफ अनुशंसा करता हूं क्योंकि उनका मतलब है कि आप InnoDB का उपयोग नहीं कर रहे हैं।
आप पोस्टग्रेज़ के बारे में यहाँ पढ़ सकते हैं:
http://www.postgresql.org/docs/current/static/textsearch .html
एक tsvector कॉलम पर एक इंडेक्स बनाने के बाद, आप दो चरणों में अपना "grep" कर सकते हैं, एक तुरंत उन पंक्तियों को खोजने के लिए जो अस्पष्ट रूप से योग्य हो सकती हैं, इसके बाद दूसरा आपके सही मानदंड पर:
select * from docs where tsvcol @@ :tsquery and (regexp at will);
यह grep जो कुछ भी कर सकता है, उससे काफ़ी तेज़ होगा।