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