C 在sqlite3(FTS4)的全文搜索中使用特殊字符

C 在sqlite3(FTS4)的全文搜索中使用特殊字符,c,sqlite,full-text-search,C,Sqlite,Full Text Search,我在Linux上通过C库使用sqlite3(如果有必要的话)进行全文搜索,所讨论的数据库是一个 我在数据库中存储了一些文件名,并将其搜索为: SELECT file_name FROM leTable WHERE file_name MATCH 'le name' 到目前为止还不错,但当我想搜索像 SELECT file_name FROM fs_index WHERE file_name MATCH 'le-name' SELECT file_name FROM fs_index WHERE

我在Linux上通过C库使用sqlite3(如果有必要的话)进行全文搜索,所讨论的数据库是一个

我在数据库中存储了一些文件名,并将其搜索为:

SELECT file_name FROM leTable WHERE file_name MATCH 'le name'
到目前为止还不错,但当我想搜索像

SELECT file_name FROM fs_index WHERE file_name MATCH 'le-name'
SELECT file_name FROM fs_index WHERE file_name MATCH 'le[name]'
然后它失败了,因为sqlite将
-
视为一个特殊字符,它给了我文件名,包括
le
,但不是
name

当我在匹配查询中使用字符
[
]
时,也会发生类似的情况


使用
\
没有帮助,那么我如何转义这些字符以在匹配查询中使用它们呢?

默认情况下,fts标记器应该去掉所有标点并忽略它,搜索“le name”是否会得到3行?是的,但我想缩小结果范围,并真正想匹配
le name