iphone - 以(后缀)结尾并包含在 SQLite FTS 中使用 MATCH 进行的字符串搜索

标签 iphone ios sqlite fts3

我在我的 iOS 应用程序中使用 SQLite FTS 扩展。 它表现不错,但问题是它只匹配字符串前缀(或以关键字搜索开头)。

这个有效:

SELECT FROM tablename WHERE columnname MATCH 'searchterm*'

但以下两个不要:

SELECT FROM tablename WHERE columnname MATCH '*searchterm'


SELECT FROM tablename WHERE columnname MATCH '\*searchterm\*'

是否有解决此问题的方法或使用 FTS 构建类似于 LIKE '%searchterm%' 查询的查询的方法。

编辑:

正如 Retterdesdialogs 所指出的,以相反的顺序存储整个文本并对反向字符串运行前缀搜索是解决结尾/后缀搜索问题的可能解决方案,这是我最初的问题,但它不适用于“包含”搜索。我已经相应地更新了问题。

最佳答案

在我的 iOS 和 Android 应用程序中,我一直回避 FTS 搜索,因为它由于缺少后缀查询而不支持子字符串匹配。

解决方法似乎很复杂。

我求助于使用 LIKE 查询,虽然性能不如 MATCH,但可以满足我的需求。

关于iphone - 以(后缀)结尾并包含在 SQLite FTS 中使用 MATCH 进行的字符串搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11752840/

相关文章:

ios - 将数据备份到服务器时验证用户

python - 方言特定的 SQLAlchemy 声明列默认值

ios - 如何在ios框架中覆盖值/文件

iphone - 获取应用程序数据文件的最后文件修改日期?

iphone - 如何在 iOS 上获取模板选择器/文档浏览器 View ?

ios - 在不继承 UINavigationController 的情况下以编程方式更改 ViewController 的方向

ios - 如何使用 GLKit 围绕图集中 Sprite 的中心旋转

java - Android 阻止应用程序在启动时查询空数据库

android - 将值插入 SQLite 数据库

ios - 如何在 "dd/MM/yyyy"格式 ios 中获取 NSDate?