【问题标题】:SQLite FTS4 search with special characters使用特殊字符的 SQLite FTS4 搜索
【发布时间】:2012-09-12 02:54:43
【问题描述】:

我有一个 Android 应用程序,它使用 FTS4 虚拟表在 SQLite 数据库中搜索数据。它工作正常,但是当表中的数据包含特殊字符(如 'á'、'é'、'í'、'ó'、'ú' 或 'ñ')时,SQLite MATCH 函数不会给出任何结果。我在这一点上迷路了。谢谢。

【问题讨论】:

  • 你在用什么tokenizer
  • 好吧,我没有使用任何标记器,我不知道它是如何工作的。我的搜索如下:SELECT * FROM table1_fts4 WHERE table1_fts4 MATCH 'query';

标签: android sqlite full-text-search special-characters fts4


【解决方案1】:

注意:默认分词器真的很差。 要获得良好的结果,您应该实现自定义标记器。 路径没那么简单:

  • 找到适合您需要的分词器(带有词干分析器?),或者 开发它
  • 使用 sqlite.c 源将其粘贴
  • 粘贴一个 JNI 接口来包装原生库,这样它就可以 可从 dalvik VM 访问
  • 使用NDK从头编译sqlite.c,准备一个动态的 Android 库

在 stackoverflow 中,您应该可以找到一些不错的帖子来开始学习如何做到这一点。

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

  • sqlite4java
  • sqlcipher

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-23
    • 2021-10-11
    相关资源
    最近更新 更多