MySQL 全文(非)搜索

标签 mysql full-text-search

我有一个表,其中有视频数据,如“标题”、“描述”等。我正在尝试使用 MySQL 全文索引编写一个搜索引擎。 SQL 查询适用于某些单词,但不是每个单词。这是我的 SQL 查询;

SELECT *
FROM videos
WHERE MATCH (title, description) AGAINST ('XXXXXXXXXX' IN NATURAL LANGUAGE MODE)

我用查询词替换“XXXXXXXX”。它适用于“otomotiv”,但不适用于“otomoti”。如果找到“otomotiv”,不是必须找到“otomoti”吗?因为“otomoti”是整个单词“otomotiv”的一部分?

我尝试将搜索模式更改为“自然语言模式”或“带有查询扩展”,但仍然没有成功。

MySQL找不到整个单词的一部分正常吗?

最佳答案

您需要执行 bool 全文搜索,因为它支持通配符运算符。
http://dev.mysql.com/doc/refman/5.5/en/fulltext-boolean.html

SELECT *
FROM videos
WHERE MATCH (title, description) AGAINST ('otomoti*' IN BOOLEAN MODE)

关于MySQL 全文(非)搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6967558/

相关文章:

PHP/MySQL 限制字段输出的字符

mysql - Redis用户管理系统

sql - 针对 SQL 数据库自动完成名称

search - 反转文件与签名文件

mysql:更新记录,逐行更新

php - 使用 MySQL 和 PHP PDO 发出基于 SELECT 语句的运行查询

ipad - 使用 Quartz 2D 在 iPad 上进行 Pdf 全文搜索

mysql - 我的 Mysql LIKE 语句应该多快?

php - Innodb 全文搜索中的转义 @ 符号

python - 没有名为 mysql 的模块; _mysql 在哪里