使用连字符/破折号进行MariaDB全文搜索

l5tcr1uw  于 2022-11-08  发布在  其他
关注(0)|答案(2)|浏览(118)

我们将从MySQL 5.6迁移到MariaDB 10.1,并为产品描述和产品编号提供了全文索引(InnoDB)。我们的大量产品编号都有一个破折号/连字符,比如“PF-2”。如果我在MySQL中搜索它,它会搜索“PF”和“2”,这两个字符都少于3个字符,并且会返回空结果。是否可以让MariaDB将连字符视为字母字符,而不是停止/断字字符?在MySQL中,对UTF8字符集执行此操作的唯一方法是对MySQL进行自定义构建。

jtw3ybtb

jtw3ybtb1#

您可以引用查询字符串:

select *
from mytable
where  match(mycol) against  ('+"Pf-2"' in boolean mode)>0.0;
dvtswwa3

dvtswwa32#

我最终使用了:

`SELECT * FROM  `Product` WHERE MATCH(`title`, `number`, `shortDescription`, `rawDescription`, `rawColors`)
AGAINST('PF-2' IN BOOLEAN MODE) OR `number` LIKE '%PF-2%'

不理想,但它完成了工作,直到我们让Sphinx运行,以取代全文搜索。

相关问题