C 在sqlite3(FTS4)的全文搜索中使用特殊字符
我在Linux上通过C库使用sqlite3(如果有必要的话)进行全文搜索,所讨论的数据库是一个 我在数据库中存储了一些文件名,并将其搜索为: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
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