我有一个建议表(FTS4),用于为Android操作栏搜索中的查询提供建议。我需要在表格中查询一列(suggest_text_1
)与查询文本匹配而另一列(data_type
)与特定查询不匹配的建议,例如2
。
我当前的选择文字为table_suggestions MATCH ?
,我正在尝试使用以下选择参数文本替换'?'
- suggest_text_1:*S1* AND data_type:NOT 2
。
问题是,即使数据存在,该表也向我提供了任何建议。可以指出我以正确的方式执行此查询吗?
答案 0 :(得分:1)
Android中的SQLite库通常不使用增强的查询语法进行编译,因此您必须使用standard query syntax作为suggest_text_1:S1* data_type:-2
之类的内容。
在SQL中,这将是:
SELECT docid,
suggest_text_1
FROM MyTable
WHERE MyTable MATCH 'suggest_text_1:' || ? || '* data_type:-' || ?
FTS仅支持前缀查询;你不能在单词的开头使用*
。