我有这个数据库(MySql v5.7)

DROP TABLE IF EXISTS test3_sim;
CREATE TABLE test3_sim (
ID INT not null,
texto VARCHAR(1024)
);

ALTER TABLE test3_sim ADD FULLTEXT(texto);

INSERT INTO test3_sim (id,texto) VALUES (1,'NA');
INSERT INTO test3_sim (id,texto) VALUES (2,'NA');
INSERT INTO test3_sim (id,texto) VALUES (3,'DUPLICATE');
INSERT INTO test3_sim (id,texto) VALUES (4,'OTH');
INSERT INTO test3_sim (id,texto) VALUES (5,'NOP');
INSERT INTO test3_sim (id,texto) VALUES (6,'NOP');
INSERT INTO test3_sim (id,texto) VALUES (7,null);


我正在通过BOOLEAN MODE中的全文语法执行一些搜索,以搜索其他值匹配。
我无法真正弄清楚为什么搜索术语“ NA”时它会失败:
该查询结果为空:

SELECT id, texto
FROM test3_sim
WHERE MATCH (texto) AGAINST ('NA' IN BOOLEAN MODE)
AND texto is not null


但是它应该输出前2行。

一切适用于“ DUPLICATE”,“ OTH”,“ NOP”搜索。

查询失败有特定原因吗?
在这里演示

最佳答案

根据@Raymond Nijaland的评论,这是由于FULLTEXT的默认ft_min_word_len设置为3,这意味着它不会索引长度较短的字符串

10-04 14:35