1 MySQL
2 PHP and MySQL
3 PHP MySQL Database Search
这是我表格中的三行。在应用搜索关键字"php mysql 数据库"时,它应该从第 3 行开始按 3-2-1 的顺序显示结果,因为其中有所有 3 个关键字。
我尝试了这段代码,但它只显示所有三个结果,但不按我想要的顺序显示。
SELECT data,
MATCH(data) AGAINST('PHP MySQL Database' IN BOOLEAN MODE) AS score
FROM table
WHERE MATCH(data) AGAINST('PHP MySQL Database' IN BOOLEAN MODE) ORDER BY score DESC;
比较布尔模式和自然语言模式的文档:
布尔:布尔全文搜索具有以下特征: 它们不会按相关性递减的顺序自动对行进行排序。
自然语言:当 MATCH(( 在 WHERE 子句中使用时,如前面所示的示例,返回的行将首先以最高的相关性自动排序。
所以我的建议是使用自然语言模式,简单地省略你的显式排序子句。
关于默认设置的说明
引用上面链接的文档:
在全文搜索中会忽略某些字词:
任何太短的单词都将被忽略。全文搜索找到的单词的默认最小长度为 4 个字符。
默认的最小字长和非索引字列表可以按照第 12.9.6 节 "微调 MySQL 全文搜索"中所述进行更改。
从链接到的页面:
例如,如果希望三个字符的单词可搜索,则可以通过在选项文件中放置以下行来设置 ft_min_word_len 变量:
[mysqld]
ft_min_word_len=3