2010-10-22 2 views
0

У меня есть таблица MySQL, содержащая данные о событиях.Поиск проблем в MySQL таблице с использованием MATCH AGAINST

В этой таблице у меня есть индекс FULLTEXT, включающий event_title, event_summary, event_details типов varchar, текст, текст соответственно.

Примеры названий включают в себя: «Количество подключений», «Первая помощь», «Здоровье & Безопасность».

я могу найти таблицу следующим образом:

SELECT * FROM events WHERE MATCH (event_title,event_summary,event_details) AGAINST ('connections'); 

который возвращает события, названные «Connections Подсчитайте» нет проблем.

Однако, независимо от того, что я стараюсь, я получаю пустой результирующий набор при выполнении следующих запросов:

SELECT * FROM events WHERE MATCH (event_title,event_summary,event_details) AGAINST ('first aid'); 

SELECT * FROM events WHERE MATCH (event_title,event_summary,event_details) AGAINST ('first'); 

SELECT * FROM events WHERE MATCH (event_title,event_summary,event_details) AGAINST ('aid'); 

Я попытался переименовать событие, чтобы «Rich Aid» и может искать то, что просто отлично. Кроме того, «First Rich» отлично работает.

Любые идеи, почему это происходит или как исправить это было бы здорово!

Спасибо за ваше время.

Rich

ответ

1

«первый» является "stopword" и по умолчанию слов ниже 4 caracters не совпадают, если не указано ft_min_word_len значение.

+0

Aha! Я искал аналогичный зарезервированный список слов, который «первым» не был включен. Несомненно, есть способ поиска «Первой помощи», используя этот запрос? – Rich

+0

Это казалось неправильным ^^ Просто измените файл/myisam/ft_static.c, чтобы изменить его. – MatTheCat

+0

Изменить «storage/myisam/ft_static.c» (не знаю, читаете ли вы предыдущий пост) – MatTheCat

Смежные вопросы