【发布时间】:2014-02-18 07:51:45
【问题描述】:
我有以下“银行”表
ID | name
1 | JPMorgan Chase bank
2 | Bank of south
3 | Citigroup bank
4 | Wells Fargo bank
5 | Bank of New York
所以当搜索“bank of”时,我希望搜索结果返回如下:
Bank of New York
Bank of south
Citigroup bank
JPMorgan Chase bank
Wells Fargo bank
但是下面的代码返回:
JPMorgan Chase bank
Bank of America
Citigroup bank
Wells Fargo bank
Bank of New York
这是代码:
$search_term = 'bank of';
$sql2 = "SELECT *,
MATCH(name) AGAINST ('.$search_term.' IN BOOLEAN MODE)
AS relevance FROM banks
HAVING relevance > 0.8
ORDER BY relevance DESC";
谢谢!
【问题讨论】:
-
考虑一下:出现在 50% 或更多行中的单词被认为是常见的并且不匹配。
-
@juergend,对,但我的选择是什么?
-
两个字符的单词,例如'of',不会被 MySQL 全文索引索引,因为最小单词长度在 InnoDB 表中限制为 3 个字符,在 MyISAM 表中限制为 4 个字符。在这里阅读更多。在您有权将最小字长更改为 2 个字符的情况下,应该会给您预期的结果。
标签: mysql search full-text-search relevance