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;
答案 0 :(得分:2)
比较the docs for boolean mode和natural language mode:
布尔值:布尔全文搜索具有以下特征: 它们不会按相关性降低的顺序自动对行进行排序。
自然语言:在WHERE子句中使用MATCH()时,如前面所示的示例,返回的行将首先自动排序,具有最高的相关性。
所以我的建议是使用自然语言模式,只是省略了明确的排序条款。
引用上面链接的文档:
全文搜索中会忽略某些字词:
任何太短的单词都会被忽略。通过全文搜索找到的默认最小单词长度为四个字符。
可以按照12.9.6, “Fine-Tuning MySQL Full-Text Search部分所述更改默认的最小字长和停用词列表。
从链接到的页面:
例如,如果您想要搜索三个字符的单词,可以通过将以下行放在选项文件中来设置ft_min_word_len变量:
[mysqld]
ft_min_word_len=3