更新我移动了我的原始答案
我有一个奇怪的建议
您可能需要使用名为myisam_ftdump的mysql实用程序
这是我原始答案中的示例中的FULLTEXT转储
C:\MySQL_5.5.12\data\sandro>myisam_ftdump -vc txtdata 1
2 0.4054651 everyhing
2 0.4054651 impossible
1 1.3862944 knew
3 -0.4054651 know
2 0.4054651 nothing
1 1.3862944 people
2 0.4054651 possible
1 1.3862944 probable
1 1.3862944 something
如果您可以将其生成为文本文件,则可以让PHP为您要查找的单词进行解析.
原始答案
无论有没有BOOLEAN MODE,答案都是否定的.
但是,您可以根据单词出现次数和整体字符串长度显示排名,如下所示:
样本数据
DROP DATABASE sandro;
CREATE DATABASE sandro;
use sandro
CREATE TABLE txtdata
(
id int not null auto_increment,
txt VARCHAR(255),
primary key (id),
FULLTEXT (txt)
) ENGINE=MyISAM;
INSERT INTO txtdata (txt) VALUES
('I know Nothing is possible'),
('We know nothing is impossible'),
('I knew everyhing is possible'),
('We know everyhing is possible'),
('For may people something is probable');
这是各种搜索排名的结果
mysql> SELECT *,MATCH(txt) AGAINST ('possible knew') as score FROM txtdata;
+----+--------------------------------------+--------------------+
| id | txt | score |
+----+--------------------------------------+--------------------+
| 1 | I know Nothing is possible | 0.3919430673122406 |
| 2 | We know nothing is impossible | 0 |
| 3 | I knew everyhing is possible | 1.73200523853302 |
| 4 | We know everyhing is impossible | 0 |
| 5 | For may people something is probable | 0 |
+----+--------------------------------------+--------------------+
5 rows in set (0.00 sec)
mysql> SELECT *,MATCH(txt) AGAINST ('possible know') as score FROM txtdata;
+----+--------------------------------------+--------------------+
| id | txt | score |
+----+--------------------------------------+--------------------+
| 1 | I know Nothing is possible | 0.3919430673122406 |
| 2 | We know nothing is impossible | 0 |
| 3 | I knew everyhing is possible | 0.3919430673122406 |
| 4 | We know everyhing is impossible | 0 |
| 5 | For may people something is probable | 0 |
+----+--------------------------------------+--------------------+
5 rows in set (0.00 sec)
mysql> SELECT *,MATCH(txt) AGAINST ('impossible knew') as score FROM txtdata;
+----+--------------------------------------+--------------------+
| id | txt | score |
+----+--------------------------------------+--------------------+
| 1 | I know Nothing is possible | 0 |
| 2 | We know nothing is impossible | 0.3919430673122406 |
| 3 | I knew everyhing is possible | 1.340062141418457 |
| 4 | We know everyhing is impossible | 0.3919430673122406 |
| 5 | For may people something is probable | 0 |
+----+--------------------------------------+--------------------+
5 rows in set (0.00 sec)
mysql> SELECT *,MATCH(txt) AGAINST ('impossible know') as score FROM txtdata;
+----+--------------------------------------+--------------------+
| id | txt | score |
+----+--------------------------------------+--------------------+
| 1 | I know Nothing is possible | 0 |
| 2 | We know nothing is impossible | 0.3919430673122406 |
| 3 | I knew everyhing is possible | 0 |
| 4 | We know everyhing is impossible | 0.3919430673122406 |
| 5 | For may people something is probable | 0 |
+----+--------------------------------------+--------------------+
5 rows in set (0.00 sec)
mysql>