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

How to query in sqlite fts3 table using "-*"?

我有一个名为 fts3 table 的选项卡,里面有很多条目。当我 运行 这个查询时:

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

我得到这样的结果:

an
anul
an-

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

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

它仍然会导致 "an" 条目。结果会是这样的:

an
an-

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

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

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

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