为什么当我使用全文搜索语法编写查询时,例如:
SELECT * FROM TABLENAME WHERE TABLENAME MATCH 'ColumnA:word1 OR ColumnB:word2'
查询结果总是返回0行?
我正在使用 VBnet 和来自sqlite.org的最新 Ado.net 提供程序
问题是当我尝试使用外部工具进行查询时,它运行良好(使用 sqlite 3.7.9)。
有什么线索吗?提前致谢
为什么当我使用全文搜索语法编写查询时,例如:
SELECT * FROM TABLENAME WHERE TABLENAME MATCH 'ColumnA:word1 OR ColumnB:word2'
查询结果总是返回0行?
我正在使用 VBnet 和来自sqlite.org的最新 Ado.net 提供程序
问题是当我尝试使用外部工具进行查询时,它运行良好(使用 sqlite 3.7.9)。
有什么线索吗?提前致谢
尽管 System.Data.Sqlite 是使用 FTS 编译SQLITE_ENABLE_FTS3
并支持 FTS,但它并未使用SQLITE_ENABLE_FTS3_PARENTHESIS
启用Enhanced Query Syntax进行编译。而且您在查询中使用了增强型查询语法,因此它没有按您的预期工作。
您需要修改您的查询,或者使用已定义的 System.Data.Sqlite 进行自定义构建(遵循构建过程SQLITE_ENABLE_FTS3_PARENTHESIS
) 。