2010-01-10 15 views
11

मैं आईफोन पर कुछ स्थिर डेटा पर पूर्ण-पाठ खोज को लागू करने के सर्वोत्तम तरीके पर सुझाव ढूंढ रहा हूं।आईफोन पर पूर्ण पाठ खोज लागू करना?

असल में मेरे पास एक ऐप है जिसमें एक वेब साइट का ऑफ़लाइन संस्करण है, लगभग 50 एमबी टेक्स्ट, और मैं चाहता हूं कि उपयोगकर्ता शर्तों की खोज कर सकें। मुझे लगता है कि मुझे किसी भी तरह ("शब्द", संदर्भ_to_file_containing_word) या कुछ ऐसा, किसी भी कोर डेटा या बस स्क्लाइट में डालें, "शब्द" कॉलम को इंडेक्स करें, फिर खोज सुविधा खोज शब्द के लिए तालिका खोजें और शब्दों या कुछ के परिणामों के सेट के चौराहे ले लो।

इससे लोगों को वाक्यांशों की खोज करने की अनुमति नहीं मिल जाएगी, लेकिन यह बहुत आसान और शायद धीमी नहीं होगी।

मैं इसके लिए मौजूदा एसडीके सुविधाओं का उपयोग करना चाहता हूं। क्या मुझे कोर डेटा या स्क्लाइट का उपयोग करना चाहिए?

क्या किसी के पास यह भी किया जा सकता है कि यह कैसे किया जा सकता है?

उत्तर

8

क्या आप दस्तावेज़ में प्रत्येक शब्द को डेटाबेस में अपनी पंक्ति में रखना चाहते हैं? यह दस्तावेज़ की तुलना में और भी अधिक जगह ले जा रहा है।

मैं केवल पाठ के माध्यम से खोज करने की सिफारिश करता हूं; रेगेक्स वास्तव में बहुत तेज़ है। अन्यथा, आप Boyer-Moore को काफी आसानी से कार्यान्वित कर सकते हैं।

[संपादित करें] यदि आप शब्दों की अनुक्रमणिका बनाने पर जोर देते हैं, तो आप trie को हरा नहीं सकते हैं। यह डेटाबेस का उपयोग करने से तेज़ होगा, और अधिकतर दस्तावेजों की तुलना में कम जगह ले लेगा (डेटाबेस के विपरीत)

+0

धन्यवाद! मुझे लगता है कि मैं पहले सभी regexps के साथ सभी फ़ाइलों को घुमाने की कोशिश करूंगा तो अगर यह बहुत धीमी है तो मैं वहां से अन्य चीजों को आजमाउंगा। नेटवर्क से संबंधित प्रोग्रामिंग करने के बाद मैं कुछ हद तक परिचित हूं लेकिन नेटवर्क उपसर्गों के बजाय उन्हें शब्दों पर लागू करने के लिए सोचा नहीं था। – Nimrod

2

उत्तर SQLite के लिए FTS3 है। Google, यह आईफोन पर काम करने के तरीके पर कई ट्यूटोरियल हैं।

और आईफोन पर SQLite का उपयोग करने का आसान तरीका एफएमडीबी का उपयोग कर रहा है।

संबंधित मुद्दे