使用SQLite FTS4进行特殊字符搜索

5

我有一个Android应用程序,在FTS4虚拟表中搜索数据的SQLite数据库。它可以正常工作,但是当表格内的数据包含特殊字符(例如 'á'、'é'、'í'、'ó'、'ú' 或 'ñ')时,SQLite的MATCH函数会返回零结果。我现在感到困惑。谢谢。


你使用的是哪种 tokenizer - CL.
好的,我没有使用任何分词器,也不知道它是如何工作的。我的搜索语句如下:SELECT * FROM table1_fts4 WHERE table1_fts4 MATCH 'query'; - user1387981
1个回答

0

注意:默认的分词器效果非常差。

为了获得良好的结果,您应该实现一个自定义的分词器。

这条路并不简单:

  • 找到适合您需求的分词器(带有词干提取器?)或者开发它
  • 将其与sqlite.c源代码粘合在一起
  • 粘合一个JNI接口来包装本地库,以便从dalvik VM中访问
  • 使用NDK从头编译sqlite.c并为Android准备动态库

在stackoverflow上,您可以找到一些很好的帖子来开始学习如何做到这一点。

查看以下项目以获得一些良好的起点:

  • sqlite4java
  • sqlcipher

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接