如何查询sqlite中的fts表以获得一个匹配列,另一个匹配特定查询?

时间:2014-02-17 05:08:03

标签: java android sqlite fts3 fts4

我有一个建议表(FTS4),用于为Android操作栏搜索中的查询提供建议。我需要在表格中查询一列(suggest_text_1)与查询文本匹配而另一列(data_type)与特定查询不匹配的建议,例如2

我当前的选择文字为table_suggestions MATCH ?,我正在尝试使用以下选择参数文本替换'?' - suggest_text_1:*S1* AND data_type:NOT 2

问题是,即使数据存在,该表也向我提供了任何建议。可以指出我以正确的方式执行此查询吗?

1 个答案:

答案 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仅支持前缀查询;你不能在单词的开头使用*