我正在考虑使用 Trigram Tokenizer 来支持 FTS 中的子字符串匹配。
参考:https ://sqlite.org/fts5.html#the_experimental_trigram_tokenizer
我创建了一个虚拟表和数据,如下所示:
CREATE VIRTUAL TABLE tri_test USING fts5(a, tokenize="trigram");
INSERT INTO tri_test VALUES('abcde\fghij KLMNOPQRST uvwxyz');
但是,当我使用具有非字母数字字符(如反斜杠 (\))的搜索文本进行选择查询时,它会抛出错误。
SELECT * FROM tri_test('cde\fg');
错误:
Execution finished with errors.
Result: fts5: syntax error near "\"
At line 74:
SELECT * FROM tri_test('cde\fg');
当我尝试使用 MATCH 运算符时也会出现同样的问题
SELECT * FROM tri_test where tri_test MATCH 'cde\fg';
有没有办法逃脱这样的角色?请帮忙!