我有一个表,其中有视频数据,如“标题”,“描述”等。我正在尝试编写一个带有MySQL全文索引的搜索引擎。 SQL查询适用于某些单词,但不适用于每个单词。这是我的SQL查询;
SELECT *
FROM videos
WHERE MATCH (title, description) AGAINST ('XXXXXXXXXX' IN NATURAL LANGUAGE MODE)
我用查询字词替换“XXXXXXXX”。它适用于“otomotiv”但不适用于“otomoti”。如果发现“otomotiv”,是不是必须找到“otomoti”,因为“otomoti”是整个“otomotiv”这个词的一部分?
我尝试将搜索模式更改为“IN NATURAL LANGUAGE MODE”或“WITH QUERY EXPANSION”,但仍然没有运气。
MySQL无法找到整个单词的一部分是否正常?
答案 0 :(得分:2)
您需要执行布尔全文搜索,因为它支持通配符运算符 http://dev.mysql.com/doc/refman/5.5/en/fulltext-boolean.html
SELECT *
FROM videos
WHERE MATCH (title, description) AGAINST ('otomoti*' IN BOOLEAN MODE)