我有一个表,其中有视频数据,如“标题”、“描述”等。我正在尝试使用 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/