对于postfix搜索,使用FTS5虚拟表不会返回任何结果。
它只能搜索整个单词标记,或者搜索单词标记的前缀(如果我将*
附加到搜索中)。
例如,如果我搜索werty
,它找不到qwerty.png
行。
CREATE TABLE IF NOT EXISTS files (name TEXT, id INTEGER);
INSERT INTO files (name, id) VALUES ('qwerty.png', 1), ('asdfgh.png', 2);
CREATE VIRTUAL TABLE IF NOT EXISTS names USING FTS5(name);
INSERT INTO names (name) SELECT name FROM files;
SELECT *
FROM names
WHERE name MATCH 'werty';
它仅适用于前缀搜索(qwerty
、qwer*
、qwe*
等)。
我不能在搜索开始时使用*
(*werty
),因为它会产生错误。
可能会使索引文本搜索工作起来就像我会使用
SELECT *
FROM names
WHERE name like '%wert%';
?
我只想快速搜索一个子字符串,而不用扫描整个表。
1条答案
按热度按时间apeeds0o1#
也许可以试试实验性的trigram标记器
使用三元组标记器时,查询或短语标记可以匹配行中的任何字符序列,而不仅仅是一个完整的标记。