如何解除全文对结果条数的限制?
How to eliminate restrictions of full-text for the number of results?
根据我的研究,我发现 (在全文搜索中) 如果总行数与结果数之间的差异小于或等于数字的结果,则结果将为零 (或未找到任何内容).
这里有一个例子,请看这个:
// table - The number of total rows: 3
+----+-------+
| id | col |
+----+-------+
| 1 | one |
| 2 | one |
| 3 | two |
+----+-------+
我的查询:
SELECT * FROM `table` WHERE MATCH (`col`) AGAINST ('one');
结果: There is 0 result。 (为什么?我认为因为结果数是2
,总行数也是3
,所以3 - 2 = 1
,和2 > 1
,那么结果将是0
.)
现在我想知道,如何取消这个限制?换句话说,我希望当我搜索 one
时,结果是这样的:
+----+-------+
| 1 | one |
| 2 | one |
+----+-------+
此查询显示您的 ft_min_word_len 字段值,它应该是 3,如果它是 4,则可能不适用于 3 个字符的长度。
mysql> show variables like '%len';
ft_min_word_len | 3 |
更改 my.cnf
在 mysqld 块中添加以下内容
ft_min_word_len = 3
http://sqlfiddle.com/#!9/71583a/2
尝试在搜索模式中添加 IN BOLLEAN MODE,如下所示
SELECT * FROM table
WHERE MATCH (col
) AGAINST ('one' IN BOOLEAN
MODE); SELECT * FROM table
WHERE MATCH (col
) AGAINST ('two' IN
BOOLEAN MODE);
fiddle:
根据我的研究,我发现 (在全文搜索中) 如果总行数与结果数之间的差异小于或等于数字的结果,则结果将为零 (或未找到任何内容).
这里有一个例子,请看这个:
// table - The number of total rows: 3
+----+-------+
| id | col |
+----+-------+
| 1 | one |
| 2 | one |
| 3 | two |
+----+-------+
我的查询:
SELECT * FROM `table` WHERE MATCH (`col`) AGAINST ('one');
结果: There is 0 result。 (为什么?我认为因为结果数是2
,总行数也是3
,所以3 - 2 = 1
,和2 > 1
,那么结果将是0
.)
现在我想知道,如何取消这个限制?换句话说,我希望当我搜索 one
时,结果是这样的:
+----+-------+
| 1 | one |
| 2 | one |
+----+-------+
此查询显示您的 ft_min_word_len 字段值,它应该是 3,如果它是 4,则可能不适用于 3 个字符的长度。
mysql> show variables like '%len';
ft_min_word_len | 3 |
更改 my.cnf 在 mysqld 块中添加以下内容
ft_min_word_len = 3
http://sqlfiddle.com/#!9/71583a/2
尝试在搜索模式中添加 IN BOLLEAN MODE,如下所示
SELECT * FROM
table
WHERE MATCH (col
) AGAINST ('one' IN BOOLEAN MODE); SELECT * FROMtable
WHERE MATCH (col
) AGAINST ('two' IN BOOLEAN MODE);
fiddle: