如何使用“ - *”在sqlite fts3表中查询?

时间:2016-04-05 17:01:56

标签: android sqlite full-text-search fts3

我有一个名为tab的fts3表,其中有很多条目。当我运行此查询时:

SELECT * FROM tab WHERE key MATCH 'an*';

我得到的结果如下:

an
anul
an-

但是当我运行这个查询时:

SELECT * FROM tab WHERE key MATCH 'an-*';

它仍然会产生“一个”条目。结果如下:

an
an-

如何编写查询以使结果不是“an”,而只是那些实际包含字符“ - ”的条目?

1 个答案:

答案 0 :(得分:2)

根据默认的tokenizer规则,-会分隔字词,否则会被忽略。

您必须首先搜索单词an,然后检查连字符:

SELECT *
FROM tab
WHERE key MATCH 'an'
  AND key LIKE 'an-%';