Lal*_*ani 8 sqlite android full-text-search fts4
我正在使用FTS查询我的数据库以提高搜索速度,因为我还需要在文本描述中搜索,
当我尝试使用单列进行查询时,其工作正常如下
select * from productsearch where productsearch match ('prod_name:panasonic*tw*')
Run Code Online (Sandbox Code Playgroud)
并且,
select * from productsearch where productsearch match ('prod_short_desc:samsung*s5*')
Run Code Online (Sandbox Code Playgroud)
所以,在两个查询之上给出了我预期的结果,但是当我尝试使用OR运算符组合两个查询时它没有给我任何结果
select * from productsearch where productsearch match ('prod_name:panasonic*tw* OR
prod_short_desc:samsung*s5*')
Run Code Online (Sandbox Code Playgroud)
所以,我想在使用OR运算符搜索多个列时知道我在这里做错了什么
UPDATE
以下查询工作正常,但不符合我的要求,
select * from productsearch where productsearch match ('prod_name:panasonic* OR
prod_short_desc:samsung*')
Run Code Online (Sandbox Code Playgroud)
您可以看到,如果我删除多个令牌,那么它也可以与OR运算符一起正常工作.
所以,我终于找到了解决方案,
我没有单独搜索所有列,而是在数据库中创建了一个列,其中包含要搜索的所需列的数据,
例子
我需要在prod_name&prod_short_desc列中搜索,因此我创建了一个在数据库中命名的列,并附加了&data的值,然后查找唯一的字段,效果就像一个魅力prod_nameprod_short_descdata
产品名称| 产品短描述
samsung | samsung s5
Run Code Online (Sandbox Code Playgroud)
所以,现在我将两列的数据合并为一列,并以空格作为分隔符
数据
三星 三星 S5
然后使用以下查询进行搜索确实非常快,
select * from productsearch where productsearch match ('samsung*s5*')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
961 次 |
| 最近记录: |