是否有可能在MySql中完成全文匹配查询
问题描述:
我试图使用通配符将单词的词干作为MySql中的全文搜索的一部分来传递。我宁愿使用match ...反对性能优势而不是类似的查询。是否有可能在MySql中完成全文匹配查询
我发现这个职位这使得它听起来觉得这是可以做到: MySQL fulltext with stems
...但我不能让它为我工作。
我的数据是这样的:
table name: "rxnorm_brands"
step_medname bn_name
Amoxicillin Wymox
Amoxicillin-Clavulanate Augmentin
这个查询工作,但使用 “赞”:
select `step_medname`, `bn_name`
from `rxnorm_brands`
where (`bn_name` like 'Amox%' or `step_medname` like 'Amox%');
我想要使用此查询,但它没有返回值:
select `step_medname`, `bn_name`
from `rxnorm_brands`
where MATCH (`bn_name`, `step_medname`) AGAINST ('Amox*');
我在bn_name和step_medname上有全文索引。我究竟做错了什么?或者可以这样做吗?
答
这可以使用IN BOOLEAN MODE完成,请参阅:http://dev.mysql.com/doc/refman/5.1/en/fulltext-boolean.html。
所以您的查询就会变成:
select `step_medname`, `bn_name`
from `rxnorm_brands`
where MATCH (`bn_name`, `step_medname`) AGAINST ('Amox*' IN BOOLEAN MODE);
但要注意与布尔模式匹配,行匹配或不 - 结果可以不再受相关性,如他们可以用正常的FULLTEXT有序搜索。
谢谢!这对我有效。 – Marvin 2010-08-25 21:02:39