繁体   English   中英

MysqL:对多列进行全文搜索,100%匹配

[英]MysqL: Perform fulltext search over multiple columns and 100 % match

我想对MySQL数据库中的多个列进行全文搜索,只使用1个输入字段来搜索地址。

到目前为止我的代码工作,但我也返回行,而不是所有搜索词都存在。

SELECT *, ((1.3 * (MATCH (city) AGAINST ('+$search*' IN BOOLEAN MODE)))
+ (0.6 * (MATCH (name, zip, str) AGAINST ('+$search*' IN BOOLEAN MODE)))) AS relevance
FROM service
WHERE (MATCH (name, city, zip, str) AGAINST ('+$search*' IN BOOLEAN MODE)) 
HAVING relevance > 0 ORDER BY relevance DESC LIMIT 10

这可能会像:

$search = "Anderson City ZIP"

1. Anderson, City, ZIP, street x
2. Anderson, City, ZIP, street y
3. Smith, City, ZIP, street x

所以第3行是错误的,因为它不包含Anderson而是Smith

我已经尝试在$search字符串中添加+运算符( Anderson City ZIP --> +Anderson +City +ZIP ),但结果通常没有显示任何内容。

是否可以只返回100%匹配的行?

加号是好事,但你必须确保你要搜索的其中一个字符串不超过表的50%。

还可以考虑使用引号来匹配完整的表达式:+“Anderson City ZIP”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM