MYSQL全文搜索和LIKE

9 mysql full-text-search

我正在使用MySQL全文搜索,但发现它缺少你的字符串是字段中的单词的一部分.如果我的领域是"纽约时报"并且我搜索"时间"我没有得到任何结果.解决这个问题的黑客方法是设置两个查询,一个执行全文搜索,另一个执行:

SELECT * FROM ___ WHERE 'string' LIKE %searchterm% 
Run Code Online (Sandbox Code Playgroud)

有什么方法可以设置我的全文搜索来解决这个问题,所以我不必运行额外的查询?

jam*_*unk 7

您可以在全文搜索中使用通配符.更多信息在这里

SELECT * FROM _____ WHERE MATCH (title) AGAINST ('time*' IN BOOLEAN MODE);
Run Code Online (Sandbox Code Playgroud)

  • @Arnold `LIKE %...%` 会降低你的性能,因为 SQL 不会使用索引。如果您采用这种方法,您可能不需要全文搜索。 (2认同)

Ale*_*lli 2

我基本上放弃了 MySql 的全文搜索,转而使用Sphinx——一个专用的全文搜索引擎,它实现了 MySql 的网络协议,这样你就可以将它“插入”在你的客户端和 MySql 服务器之间,一无所失,收获丰厚,严肃的全文能力。也许它不适合您的需求(您没有完全表达),但我认为它至少是工作检查!