【发布时间】:2016-09-25 03:45:06
【问题描述】:
在我的应用程序中,我在 Android 中进行开发,我有一个名为 Transactions 的 Sqlite 表,其中包含以下字段:
_Id | Date | Value | Notes
我已经有一个 ListView 显示按日期过滤的结果(例如):
Select * FROM Transacions WHERE Date BETWEEN '2016-04-25' AND '2016-05-14'
它工作正常,但我想实现一个 SearchView 来搜索自定义日期之间的交易在字段 Notes 中有一些在 SearchView 中键入的文本。 我阅读了有关添加 SearchView 的信息,实现搜索的最佳方法是使用 FTS3 或 FTS4 表,例如,允许用户键入“SUPERMARKET”并查找注释包含此文本的事务。 出现问题是因为 FTS 表执行 WHERE 条件(如上,过滤日期)很慢...
如何实现过滤日期,使用WHERE date BETWEEN ... and ...,并过滤具有 FTS 表性能的文本注释?
- 如果不能这样做,最好有这样的查询:
Select * FROM Transacions WHERE (Date BETWEEN '2016-04-25' AND '2016-05-14) AND Notes LIKE '%text%''?
【问题讨论】:
-
“这样的查询是个好主意吗”——这会非常慢。即兴发挥,join 或 sub-select 可能是最好的选择,虽然我还没有玩过这个场景。
标签: android sqlite full-text-search