2009-08-10 12 views
7

SQLite3 तीन अलग-अलग पूर्ण-पाठ खोज इंजनों के साथ आता है, जिसे एफटीएस 1, एफटीएस 2 और एफटीएस 3 कहा जाता है। वेबसाइट पर उपलब्ध दस्तावेज का उल्लेख है कि एफटीएस 1 स्थिर है, एफटीएस 2 विकास में है, और आपको एफटीएस 2 का उपयोग करना चाहिए। उदाहरण मुझे ऑनलाइन एफटीएस 3 का उपयोग मिलता है, जो सीवीएस में है, और एफटीएस 2 बनाम दस्तावेज नहीं है। पूर्ण-पाठ खोज इंजनों में से कोई भी समेकित स्रोत के साथ नहीं आता है, जैसा कि मैं कह सकता हूं।SQLite3 के लिए मुझे किस पूर्ण-पाठ खोज पैकेज का उपयोग करना चाहिए?

तो, मेरा प्रश्न: इनमें से कौन सा तीन इंजन, यदि कोई है, तो क्या मुझे SQLite में पूर्ण-पाठ अनुक्रमण के लिए उपयोग करना चाहिए? या क्या मुझे बस एक तीसरे पक्ष के उपकरण जैसे स्फिंक्स, या लुसीन में एक कस्टम समाधान का उपयोग करना चाहिए?

उत्तर

4

मैंने हाल ही में पूर्ण-पाठ समाधानों में भी देखा है। ऐसा लगता है कि SQLite के पास अभी कोई वास्तविक पसंद नहीं है। कोई फर्क नहीं पड़ता कि आप क्या चुनते हैं, यह अनिवार्य है कि आपको इसे फिर से आर्किटेक्ट करना होगा क्योंकि विभिन्न एफटी 2, एफटी 3, आदि समाधान परिपक्व हैं। तो बुलेट काट लें और मान लें कि भविष्य में पूर्ण-पाठ तकनीक बदलने के साथ आपको भविष्य में और अधिक विकास करने की आवश्यकता होगी।

स्फिंक्स सर्च के पास अभी तक SQLite के लिए कोई प्रत्यक्ष समर्थन नहीं है। यह अभी केवल MySQL और PostgreSQL का समर्थन करता है (सीए अगस्त 200 9)। तो आपको अपने स्वयं के SQLite कनेक्टर को हैक करना होगा या फिर SQLite डेटा को MySQL या PostgreSQL पर माइग्रेट करना होगा और उसके बाद स्फिंक्स सर्च के साथ डेटा इंडेक्स करना होगा। मुझे लगता है कि कोई फ़ायरबर्ड का समर्थन करने के लिए स्फिंक्स सर्च पैच पर काम कर रहा है, इसलिए यदि आप अपनी आस्तीन को रोल करने के इच्छुक हैं तो शायद यह इतना कठिन नहीं है।

यह भी ध्यान रखें कि स्फिंक्स सर्च में सूचकांक में डेटा जोड़ने के बारे में कुछ सीमाएं हैं। इससे पहले कि आप इसका इस्तेमाल करने का फैसला करें, आपको एक घंटा या तो दस्तावेज़ पढ़ना चाहिए।

मुझे लुसीन में SQLite डेटा को अनुक्रमणित करने के किसी भी प्रत्यक्ष तरीके से नहीं पता है। SQLite डेटा के बैच को संसाधित करने के लिए आपको शायद अपना कोड लिखना होगा, एक समय में ल्यूसीन इंडेक्स में पंक्तियां जोड़ना होगा। ऐसा लगता है कि लुसीन का कोई फर्क नहीं पड़ता कि डेटाबेस क्या है।


अद्यतन:Solr Lucene के लिए एक महान साथी तकनीक है। सोलर उस खोज इंजन को कई विशेषताओं को देता है, जिसमें किसी भी जेडीबीसी डेटा स्रोत से थोक लोड क्वेरी परिणाम डेटा की क्षमता शामिल है।

+1

मुझे लगता है कि sqlite3 fts3 किसी बाहरी समाधान के लिए बेहतर है। कम चलती भागों। Fts2 से fts3 तक स्विच करना स्फिंक्स को इसकी अद्यतन सीमाओं या अन्य बाहरी समाधानों के साथ एकीकृत करने जितना कठिन नहीं हो सकता है। –

+1

@ सेन: मैं सहमत हूं - कुछ हद तक। यह सच है कि स्फिंक्स सर्च को सॉफ़्टवेयर का एक और टुकड़ा स्थापित करने की आवश्यकता है, जबकि fts3 को SQLite में बनाया गया है। हालांकि, fts3 डिफॉल्ट बिल्ड में नहीं बनाया गया है, इसलिए आपको SQLite को पुनः संयोजित करना होगा। और fts3 एक * आभासी तालिका * प्रकार है, आपको स्रोत तालिका से डेटा की कुछ मैन्युअल प्रतिलिपि को fts3 तालिका पर ध्यान देना होगा। इसमें कुछ चलने वाले हिस्सों हैं, इससे कोई फर्क नहीं पड़ता कि आप इसे कैसे करते हैं। –

+0

एफटीएस 3 आधिकारिक डीएलएल का हिस्सा था, जैसा कि अब एफटीएस 4 है। –

6

3.6.21 के रूप में, एफटीएस 3 अच्छी तरह से प्रलेखित है, और अधिक आधिकारिक रूप से दृश्यमान स्थिति प्राप्त की है।

एफटीएस 3 विंडोज पर मानक स्क्लाइट डीएलएल बिल्ड का हिस्सा है, जो कि समामेलित स्रोत के बारे में निश्चित नहीं है।

हम इसे किसी विशेष मुद्दे के साथ लगभग एक वर्ष तक उत्पादन पर उपयोग कर रहे हैं।

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