2011-08-15 9 views
7

शीर्षक की तरह कहते हैं: क्या हम ...USING fts3(tokenizer icu th_TH, ...) का उपयोग कर सकते हैं। यदि हम कर सकते हैं, तो क्या किसी को पता है कि स्थानीय स्थान क्या हैं, और क्या यह प्लेटफॉर्म संस्करण से भिन्न होता है?क्या एफटीएस के लिए आईसीयू टोकननाइज़र के साथ बनाया गया एंड्रॉइड पर SQLite है?

उत्तर

4

नहीं, केवल tokenizer = कुली

जब मैं tokenizer = आईसीयू निर्दिष्ट करते हैं, मैं "android.database.sqlite.SQLiteException: अज्ञात tokenizer: आईसीयू"

इसके अलावा, इस लिंक संकेत है कि अगर एंड्रॉयड नहीं था 'टी डिफ़ॉल्ट रूप से उस में संकलित है, यह नहीं होगा उपलब्ध http://sqlite.phxsoftware.com/forums/t/2349.aspx

+0

धन्यवाद। यह मेरे संदेह की पुष्टि करता है। बहुत बुरा। :( –

+5

मैंने 2 साल पहले इस समस्या की रिपोर्ट की है http://code.google.com/p/android/issues/detail?id=9199 लेकिन Google लाइव वॉलपेपर को स्पर्श, शटडाउन एनिमेशन, असुरक्षित अनलॉक विधियों पर तरंगों के साथ प्राथमिकता देता रहता है (चेहरा अनलॉक), ... इस तरह के मुद्दों पर। – Eduardo

+0

@gregm, लिंक मर चुका है। – Suragch

1

एपीआई स्तर 21 या ऊपर के लिए, मैं परीक्षण किया और पाया कि आईसीयू tokenizer पहले से ही उपलब्ध है।

हालांकि 90% + डिवाइस का समर्थन करने के लिए, कुछ कार्य-आसपास किए जा सकते हैं। मेरे पास एक अन्य प्रश्न है, जिसका उल्लेख मेरे दूसरे प्रश्न में भी है: Work around of Android SQLite full-text search for Asian text

आप एक अलग मॉड्यूल के रूप में आईसीयू टोकनाइज़र फ़ंक्शन जावा या मूल एंड्रॉइड मॉड्यूल में पोर्ट कर सकते हैं लेकिन सीधे SQLite में शामिल नहीं हैं। फिर वर्चुअल टेबल (FTS4 से समर्थित) से लिंक करने के लिए "बाहरी सामग्री तालिका" का उपयोग करें।

टुपल जोड़ने के दौरान, बाहरी सामग्री तालिका में सामान्य सामग्री जोड़ें, लेकिन वर्चुअल इंडेक्स तालिका में जोड़ने से पहले शब्दों की सीमा तक कृत्रिम रिक्त स्थान जोड़ने के लिए अकेले स्टैंड टोकनज़ियर का आह्वान करें।

टुपल डिलीट करते समय, कृत्रिम रिक्त स्थान के साथ सामग्री तालिका को अपडेट करने के लिए टोकनज़ियर को दोबारा शुरू करें, फिर वर्चुअल टेबल टुपल को हटाएं, फिर सामग्री तालिका टुपल हटाएं।

यह थोड़ा मुश्किल है, लेकिन एक पूर्ण SQLite को फिर से संकलित करने का एक और विकल्प की तुलना करना, यह पहले से ही बहुत कम प्रयास है।

बाह्य सामग्री तालिका के लिए

और यह कैसे काम करता है, कृपया उल्लेख https://www.sqlite.org/fts3.html#section_6_2_2

उपलब्ध आईसीयू tokenizer Android SDK में वास्तव में नहीं है। BreakIterator.getWordInstance का उपयोग करें। ऐसा लगता है कि यह चीनी जैसी भाषाओं के लिए शब्दकोश आधारित टोकननाइज़र का भी समर्थन करता है। http://developer.android.com/reference/java/text/BreakIterator.html

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