Qiu*_*ang 6 sqlite unicode full-text-search fts5
我原以为Unicode61 Tokenizer可以支持 CJK --中文 日语 韩语\n我验证我的 sqlite 支持 fts5
\n\nsqlite> pragma compile_options;\nBUG_COMPATIBLE_20160819\nCOMPILER=clang-9.0.0\nDEFAULT_CACHE_SIZE=2000\nDEFAULT_CKPTFULLFSYNC\nDEFAULT_JOURNAL_SIZE_LIMIT=32768\nDEFAULT_PAGE_SIZE=4096\nDEFAULT_SYNCHRONOUS=2\nDEFAULT_WAL_SYNCHRONOUS=1\nENABLE_API_ARMOR\nENABLE_COLUMN_METADATA\nENABLE_DBSTAT_VTAB\nENABLE_FTS3\nENABLE_FTS3_PARENTHESIS\nENABLE_FTS3_TOKENIZER\nENABLE_FTS4\nENABLE_FTS5\n
Run Code Online (Sandbox Code Playgroud)\n\n但令我惊讶的是它根本找不到任何中日韩单词。这是为什么 ?
\n\nsqlite> CREATE VIRTUAL TABLE ft5_test USING fts5(content, tokenize = \'porter unicode61 remove_diacritics 1\');\nsqlite> INSERT INTO ft5_test values(\'\xe4\xb8\xba\xe4\xbb\x80\xe4\xb9\x88\xe4\xb8\x8d\xe6\x94\xaf\xe6\x8c\x81\xe4\xb8\xad\xe6\x96\x87 fts5 does not seem to work for chinese\');\nsqlite> select * from ft5_test where ft5_test = \'\xe4\xb8\xad\xe6\x96\x87\';\nsqlite>\nsqlite> select * from ft5_test where ft5_test = \'Chinese\';\n\xe4\xb8\xba\xe4\xbb\x80\xe4\xb9\x88\xe4\xb8\x8d\xe6\x94\xaf\xe6\x8c\x81\xe4\xb8\xad\xe6\x96\x87 fts5 does not seem to work for chinese\n
Run Code Online (Sandbox Code Playgroud)\n\n- - - - - - - 更新 - - - - -
\n\n我花了相当多的时间来构建一个 icu 版本。我在这里分享我的经验/sf/answers/3700659651/
\n\n据我所知,使用 icu 版本是支持 CJK 的唯一方法,而 fts5 不支持 icu tokenizer。
\n\n我把我的问题留在这里,以防其他人对这个问题有新的想法。
\n 归档时间: |
|
查看次数: |
1431 次 |
最近记录: |