martin 发表于 2014-6-26 09:59:29

如何使用全文检索替代Like

本帖最后由 martin 于 2014-6-26 10:00 编辑

之前是使用like查询的
select distinct name from names where name like '%东方商厦%'因为速度慢,改成了全文检索

selectdistinct name FROM names where (match(name) against ('*东方商厦*' IN BOOLEAN MODE) )可是发现出现的结果只是上面like的子集,并且都是以东方商厦开头的,我尝试去掉东方,

selectdistinct name FROMnames where (match(name) against ('*商厦*' IN BOOLEAN MODE) )发现大部分是以商厦开头,少量不是,不然依然还是like的子集。


我想请问下,这个啥问题?

难道mysq自带了分词,match不能等同于like,如果想等同需要自己做分词,是这样吗?

kider 发表于 2014-6-27 10:39:53

不能完全匹配吧,我用全文索引不多,有时间研究一下,你查查“布尔全文索引”...
页: [1]
查看完整版本: 如何使用全文检索替代Like