2012-08-01 15 views
7

में MATCH का उपयोग करके स्ट्रिंग खोज शामिल है, मैं अपने आईओएस एप्लिकेशन में SQLite FTS एक्सटेंशन का उपयोग कर रहा हूं। यह अच्छा प्रदर्शन करता है लेकिन समस्या यह है कि यह केवल स्ट्रिंग उपसर्ग (या कीवर्ड खोज से शुरू होता है) से मेल खाता है।(प्रत्यय) के साथ समाप्त होता है और इसमें SQLite FTS

यानी

का चयन करें tablename से कहां columnName मैच 'SEARCHTERM *'

काम करता है लेकिन

का चयन करें tablename से कहां columnName मैच '* SEARCHTERM'

या

द्वारा चुने जाने वाले टैबलेटनाम जहां कॉलमनाम MATCH '* searchterm *'

नहीं करता है।

क्या इस तरह या किसी भी तरह से "LIKE '% searchterm%' क्वेरी के समान प्रश्न बनाने के लिए एफटीएस का उपयोग करने के लिए कोई कामकाज है।

संपादित करें:

रूप Retterdesdialogs से कहा, उलटे क्रम में पूरे पाठ भंडारण और रिवर्स स्ट्रिंग पर एक उपसर्ग खोज चलाने/प्रत्यय खोज समस्या है, जो अपने मूल सवाल था के साथ समाप्त होता है के लिए एक संभव समाधान है, लेकिन यह 'शामिल' खोज के लिए काम नहीं करेगा। मैंने तदनुसार सवाल अपडेट किया है।

+0

अधिकांश उपयोगकर्ता खोज की उप-स्ट्रिंग खोज होने की अपेक्षा करते हैं, मैं ज्यादातर Google की वजह से कहूंगा। मुझे आशा है कि SQLite लोग एफटीएस में उप-स्ट्रिंग समर्थन पर काम कर रहे हैं। – Diederik

उत्तर

1

मेरे iOS और Android एप्लिकेशन में, मैं वास्तव में कारण यह सबस्ट्रिंग प्रत्यय प्रश्नों की कमी के कारण से मेल खाता है का समर्थन नहीं करता है कि के लिए FTS खोज से बचते रहे हैं।

कामकाज जटिल लगते हैं।

मैंने LIKE क्वेरी का उपयोग करने का सहारा लिया है, जो कि MATCH से कम प्रदर्शन करने के दौरान मेरी आवश्यकताओं को पूरा करता है।

1

वर्कअराउंड एक अतिरिक्त कॉलम में रिवर्स स्ट्रिंग को स्टोर करना है। यह लिंक देखें (अपनी नहीं बिल्कुल वैसा ही है कि यह एक विचार दे होना चाहिए):

Search Suffix using Full Text Search

+0

आपके उत्तर के लिए धन्यवाद। यह मदद करता है लेकिन पूरी तरह से मेरी समस्या का समाधान नहीं करता है। – lukya

2

आप सभी शर्तों के प्रत्ययों आप खोज करने में सक्षम होना चाहते स्टोर करने के लिए की जरूरत है इसके लिए प्रश्नों में शामिल है काम करने के लिए पाने के लिए, । इस डेटाबेस को वास्तव में बड़ा बनाने का नकारात्मक पक्ष है, लेकिन डेटा को संपीड़ित करके इसे टाला जा सकता है।

SQLite FTS contains and suffix matches