Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用分组方式时,sqlite fts4不能使用偏移功能_Android_Sqlite_Full Text Search_Fts4 - Fatal编程技术网

Android 使用分组方式时,sqlite fts4不能使用偏移功能

Android 使用分组方式时,sqlite fts4不能使用偏移功能,android,sqlite,full-text-search,fts4,Android,Sqlite,Full Text Search,Fts4,我有两张桌子: 表1: fts虚拟表 docid长时间自动增加, 内容文本,fts列 表2: 元数据表 表1 docid的docid键, 用户名文本, 时间戳长 sql: 选择table1.docid内容、用户名、MAXtimestamp作为时间,从table1、table2中选择offsetstable1,其中内容匹配a,table1.docid=table2.docid组按用户名顺序按时间戳描述限制3 这个sql不会执行,但我通过用户名删除了组,它可以执行。为什么?偏移量函数仅对FTS表起作

我有两张桌子: 表1: fts虚拟表

docid长时间自动增加, 内容文本,fts列

表2: 元数据表

表1 docid的docid键, 用户名文本, 时间戳长

sql: 选择table1.docid内容、用户名、MAXtimestamp作为时间,从table1、table2中选择offsetstable1,其中内容匹配a,table1.docid=table2.docid组按用户名顺序按时间戳描述限制3

这个sql不会执行,但我通过用户名删除了组,它可以执行。为什么?

偏移量函数仅对FTS表起作用,但联接的结果不再是FTS表,这取决于查询优化器决定如何执行联接

您必须分两步进行搜索:

SELECT docid,
       content,
       offsets,
       username,
       MAX(timestamp)
FROM (SELECT docid,
             content,
             offsets(table1) AS offsets
      FROM table1
      WHERE content MATCH 'a')
JOIN table2 USING (docid)
GROUP BY username
ORDER BY timestamp DESC
LIMIT 3;

对我有效,除非我删除分组依据。你找到解决方案了吗?仍然出现无法在请求的上下文中使用函数偏移错误,我的sql为SELECT类型,MINsubtype为MINsubtype,实体id,辅助索引,时间戳,内容,自SELECT docid的偏移,内容,offsetsFtsIndexContact作为内容匹配的FTIndexContact的偏移量?使用DocID加入FTMetaContact,其中类型=131075,状态>=0,按辅助索引顺序按通话时间描述限制4分组;