mysql部分词搜索

标签 mysql full-text-search

我想像下面的查询一样搜索,但它在 MySQL 中不起作用

 SELECT * FROM products WHERE MATCH (title,description) 
 AGAINST ('test' IN BOOLEAN MODE); 

我想要下面的输出

testproduct, producttest

有人可以帮我解决这个问题吗?

最佳答案

目前只支持前缀,不支持后缀:

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。

关于mysql部分词搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21682506/

相关文章:

mySQL:一组中有多少个

c# - 将 Odbc 引用添加到我的应用程序

php - 如何用 Doctrine 做全文检索?

mysql - FROM 子句中的全文搜索和子查询

elasticsearch - 处理 ElasticSearch 中的点

mysql - 本地主机中 mysql 数据库连接期间出错

php - mysql_fetch_array 返回所有内容的两个

php - 通过 "CRUD"SQL PHP 创建管理数据库的网页

spring - 如何使用 JPA QueryBuilder 提供自定义表达式或谓词

MySQL 全文搜索显示的结果不准确