【发布时间】:2020-12-04 17:47:01
【问题描述】:
我想像下面的查询一样搜索,但它在 MySQL 中不起作用
SELECT * FROM products WHERE MATCH (title,description)
AGAINST ('test' IN BOOLEAN MODE);
我想要下面的输出
测试产品,产品测试
有人可以帮我解决这个问题吗?
【问题讨论】:
我想像下面的查询一样搜索,但它在 MySQL 中不起作用
SELECT * FROM products WHERE MATCH (title,description)
AGAINST ('test' IN BOOLEAN MODE);
我想要下面的输出
测试产品,产品测试
有人可以帮我解决这个问题吗?
【问题讨论】:
目前只支持前缀,不支持后缀:
SELECT * FROM products WHERE MATCH (title,description)
AGAINST ('test*' IN BOOLEAN MODE);
http://dev.mysql.com/doc/refman/4.1/en/fulltext-boolean.html
顺便提一下,当网站请求量大时,MySQL全文搜索会成为瓶颈,而对于一些特殊的搜索词,它很容易受到攻击且不稳定,因此经常会导致查询缓慢和数据库崩溃。尽快使用 Elastic Search。
【讨论】:
使用 LOCATE 代替...或者更好的是,使用 Lucene 并忘记 MySQL 进行搜索。
【讨论】: