MYSQL - Полнотекстовое сопоставление с ошибкой для 'NA' - PullRequest
0 голосов
/ 04 марта 2019

У меня есть эта БД (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».

Существует ли конкретная причина, по которой запрос не выполняется?Демо здесь

1 Ответ

0 голосов
/ 05 марта 2019

Согласно комментарию @Raymond Nijaland, FULLTEXT по умолчанию имеет значение ft_min_word_len, установленное по умолчанию, равное 3, что означает, что он не будет индексировать строки длиной меньше

...