MySQL MATCH не работает с двумя символами?

У меня есть таблица, названная 'бизнесом' со следующими демонстрационными данными:

Street - 150 N Michigan Ave.
City - Chicago
State - IL
Zip - 60601

Когда я выполняю запрос как

SELECT business.* 
    WHERE MATCH(business.Street, business.City, business.State, business.Zip)
                AGAINST('*150*' IN BOOLEAN MODE)
-- IT WORKS


SELECT business.* 
    WHERE MATCH(business.Street, business.City, business.State, business.Zip)
                AGAINST('*Chicago*' IN BOOLEAN MODE)
-- IT WORKS


SELECT business.* 
    WHERE MATCH(business.Street, business.City, business.State, business.Zip)
                AGAINST('*60601*' IN BOOLEAN MODE)
-- IT WORKS


SELECT business.* 
    WHERE MATCH(business.Street, business.City, business.State, business.Zip)
                AGAINST('*IL*' IN BOOLEAN MODE)
-- DOESNT WORK!!

Так что случилось с последним запросом?

Какие-либо идеи?

7
задан kennytm 1 August 2010 в 11:02
поделиться

2 ответа

Похоже, вы работаете с минимальной длиной limit, как указано в документации MySQL .

1
ответ дан 7 December 2019 в 03:09
поделиться

Обновите переменную ft_min_word_len в файле конфигурации my.cnf MySQL:

[mysqld]
ft_min_word_len=N

Обратите внимание, что впоследствии индексы должны быть перестроены.

6
ответ дан 7 December 2019 в 03:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: