我正在使用全文搜索(FTS)查询我的数据库,以提高搜索速度,因为我需要在文本描述中进行搜索。 当我尝试使用单个列进行查询时,它可以正常运行,如下所示。
select * from productsearch where productsearch match ('prod_name:panasonic*tw*')
And also,
select * from productsearch where productsearch match ('prod_short_desc:samsung*s5*')
所以,上述两个查询都可以给我期望的结果,但是当我尝试使用OR
运算符组合这两个查询时,它没有给我任何结果。
select * from productsearch where productsearch match ('prod_name:panasonic*tw* OR
prod_short_desc:samsung*s5*')
所以,我想知道在使用OR
运算符搜索多个列时是否有任何错误。
更新
下面的查询工作正常,但这并不满足我的要求。
select * from productsearch where productsearch match ('prod_name:panasonic* OR
prod_short_desc:samsung*')
您可以看到,如果我删除多个令牌,那么使用OR
运算符也能正常工作。
match ('prod_name:panasonic*tw*' OR 'prod_short_desc:samsung*s5*')
(在同一个匹配子句中分隔字符串)或者match ('prod_name:panasonic*tw*') OR match('prod_short_desc:samsung*s5*')
(分开两个匹配子句)。 - Phantômaxx