使用连字符/短划线进行MariaDB全文搜索

时间:2016-12-02 21:42:04

标签: mysql full-text-search mariadb hyphen

我们正在从MySQL 5.6迁移到MariaDB 10.1,并且有产品描述和产品编号的全文索引(InnoDB)。我们的大量产品编号都有短划线/连字符,例如" Pf-2"。如果我在MySQL中搜索它,它将搜索" PF"和" 2",两者都在3个字符以下,并返回空结果。是否有可能让MariaDB将连字符视为字母字符而不是停止/单词中断字符?在MySQL中,使用UTF8字符集执行此操作的唯一方法是执行MySQL的自定义构建。

2 个答案:

答案 0 :(得分:0)

您可以引用查询字符串:

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

答案 1 :(得分:0)

我最终使用:

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

并不理想,但是直到我们运行Sphinx来替换全文本搜索之前,它才完成工作。