मैं पर्ल में एक विशेष रूप से विशेष खोज इंजन कार्यान्वयन पर काम कर रहा हूं, यह विशेष रूप से सीमित (पेंट: का उप-समूह) के लिए दस्तावेजों (रेगेक्स) दस्तावेजों की खोज करता है:) एक पाठ फ़ाइल से तार। मैं सामान्य सर्च इंजन इंडेक्सिंग चाल कर रहा हूं, लेकिन एक समस्या है।मैं नियमित अभिव्यक्ति के 0 टोकन "(गलत शब्द) की पहचान कैसे कर सकता हूं
कुछ खोज रेगेक्स पैटर्न में, फ़ाइल में उपयोग किए जाने वाले डिलीमीटरों की आवश्यकता होती है। "ठीक है, मैं खुद से सोचता हूं," शब्द निकटता, फिर ... आसान "... और समीकरण का वह पक्ष सीधे आगे है।
चाल यह है कि खोज पैटर्न नियमित अभिव्यक्ति होते हैं, मैं हेवन । 'टी आसानी से विशिष्ट शब्द है कि मैं अनुक्रमित डेटा में की तलाश में जाना चाहिए (लगता है कि "विभाजन" अगर हम अधिक साधारण तार के बारे में बात कर रहे हैं)
तुच्छ उदाहरण निर्धारित किया है, "वर्ग [\ s -] * नृत्य" सीधे "स्क्वायरेंस" पर मिलेंगे लेकिन "स्क्वायर डांस" और "स्क्वायर-डांस" पर एक निकटता मैच (क्योंकि '-' एक डिलीमीटर है)। मुझे "वर्ग" और " नृत्य "अलग से, लेकिन एक दूसरे के नजदीक।
मैं challe के लिए खेल हूँ nge, लेकिन मैं बजाय स्थापित कोड का उपयोग करना होगा। मेरा आंत मुझे बताता है कि यह रेगेक्स इंजन के लिए एक आंतरिक हुक होगा, लेकिन मुझे ऐसा कुछ भी पता नहीं है। कोई सुझाव?
क्या खोज पैटर्न मनमाने ढंग से जटिल हो सकते हैं? यदि आप एक इंडेक्स बनाने के लिए समय ले रहे हैं, तो अपने स्टोरेज प्रारूप को डीकोड क्यों न करें और जिन बिट्स की आप परवाह है उन्हें खोजें? –