Я использую поиск MySQL FULLTEXT (в режиме естественного языка). Пример:
SELECT Mem_id FROM Members WHERE MATCH (job_title) AGAINST ('".mysql_real_escape_string($keywordsWanted)."')
Я заметил, что поиск " web developer" или " PHP coder" не работает должным образом, поэтому я добавил ft_min_word_len=3
в файл конфигурации MySQL ( / и т.д. / MySQL / my.cnf ). Тем не менее, двухсимвольные условия поиска по-прежнему являются проблемой. например " IT подрядчик", " PR менеджер", " 3D дизайн" и т. Д. Вот некоторые стратегии, о которых я подумал:
- Использовать
ft_min_word_len=2
- Разве это не сделает индекс МАССИВНЫМ и не замедлит БД?
- Изменить запрос на использование LIKE в тех случаях, когда ключевое слово меньше 3 символов?
- Автоматический перевод общих сокращений в полные слова. например IT -> «Информационные технологии»
- Измените пользовательский интерфейс, чтобы всплывающее окно Javascript предупреждало пользователя о том, что 2-символьные слова не учитываются, поэтому они должны перефразировать вопрос
- Перейдите к использованию Zend Lucene или другой поисковой технологии
Что вы посоветуете / Как вы решили эту проблему?