|
|
|
| По умолчанию MySQL не ищет слова длиной менее 4-х символов при поиске типа FULLTEXT.
Если посетителю сайта захочется поискать слова типа "PHP", "SQL", то такой поиск не будет выполнен.
Вроде как можно поправить my.cnf, чтобы изменить это значение, но на хостинге ведь не позволят этот файл изменять...
Как по другому можно обойти это ограничение? | |
|
|
|
|
|
|
|
для: WebTech
(10.05.2007 в 09:45)
| | можно произвести поиск в логическом режиме (IN BOOLEAN MODE), там нет этих ограничений | |
|
|
|
|
|
|
|
для: Loki
(10.05.2007 в 12:50)
| | На 4 символа и логическом режиме имеется ограничение... дело в том, что это связано со структурой полнотекстового индекса, даже если минимальное количество символов в полнотекстовом поиске изменяется при помощи системной переменной ft_min_word_len, то индексы во всех таблицах нужно перестраивать, чтобы изменения вступили в силу. Т.е. слова, содержащие меньше 4-х символов просто в индекс не попадают. | |
|
|
|
|
|
|
|
для: cheops
(10.05.2007 в 13:05)
| | А логический режим позволяет работать вообще без индексов | |
|
|
|
|
|
|
|
для: Loki
(10.05.2007 в 13:39)
| | Долго искать будет, особенно если таблица большая... одним из достоинств полнотекстового поиска, что многих привлекает, является очень шустрый поиск. | |
|
|
|
|
|
|
|
для: cheops
(10.05.2007 в 13:51)
| | Я нигде не говорил что индексы использовать не надо. Я только написал что полнотекстовый поиск в логическом режиме будет как миленький работать даже при их отсутствии. | |
|
|
|
|
|
|
|
для: Loki
(11.05.2007 в 10:47)
| | Если будут использоваться индексы и в них не будет 3-x и 2-x буквенных слов, то и находиться такие слова не будут. | |
|
|
|
|
|
|
|
для: Loki
(10.05.2007 в 12:50)
| | Можете какой-нибудь пример дать? | |
|
|
|
|
|
|
|
для: WebTech
(10.05.2007 в 14:37)
| |
SELECT * FROM articles WHERE MATCH (title,body)
AGAINST ('+MySQL -YourSQL' IN BOOLEAN MODE);
|
ищет по полям title и body
в результатах запроса обязательно должно присутствовать слово MySQL и не должно быть слова YourSQL | |
|
|
|