Задавайте вопросы, мы ответим
Вы не зашли.
Проблема в следующем:
В целом, поиск работает нормально, но когда посылается запрос на поиск 'wd-40', выдает совершенно не то что нужно
Отредактированно conceive (21.03.2011 13:51:12)
Неактивен
У Вас MATCH не в части WHERE, в итоге выборка по нему не производится.
Неактивен
rgbeast написал:
У Вас MATCH не в части WHERE, в итоге выборка по нему не производится.
SELECT * FROM `caralog_table` WHERE MATCH `name`, `descr` AGAINST ('wd-40' IN BOOLEAN MODE) AS `relev`
Попробовал Ваш запрос, также вот этот:
rgbeast написал:
У Вас MATCH не в части WHERE, в итоге выборка по нему не производится.
Тем не менее, все остальное ищется без проблем.
Неактивен
Покажите SHOW CREATE TABLE `caralog_table`;
Неактивен
vasya написал:
Покажите SHOW CREATE TABLE `caralog_table`;
Неактивен
Такой запрос не правильно работатет?
SELECT * FROM `catalog_table` WHERE MATCH (`name`) AGAINST ('WD-40' IN BOOLEAN MODE);
Неактивен
vasya написал:
Такой запрос не правильно работатет?
SELECT * FROM `catalog_table` WHERE MATCH (`name`) AGAINST ('WD-40' IN BOOLEAN MODE);
MySQL вернула пустой результат (т.е. ноль строк). ( запрос занял 0.0353 сек. )
Неактивен
Понятно, сбили вы отсутствием части where в изначальном сообщении, вот слона и не заметил.
Вы используете полнотекстовый поиск IN BOOLEAN MODE, соответственно WD-40 интерпретируется как должно быть WD и не должно быть 40
http://dev.mysql.com/doc/refman/5.5/en/ … olean.html
http://dev.mysql.com/doc/refman/5.5/en/ … earch.html
Неактивен
vasya написал:
Понятно, сбили вы отсутствием части where в изначальном сообщении, вот слона и не заметил.
Вы используете полнотекстовый поиск IN BOOLEAN MODE, соответственно WD-40 интерпретируется как должно быть WD и не должно быть 40
http://dev.mysql.com/doc/refman/5.5/en/ … olean.html
http://dev.mysql.com/doc/refman/5.5/en/ … earch.html
Да, действительно. Спасибо. Но в каком режиме тогда искать, не пойму.
Попробовал без IN BOOLEAN MODE
Неактивен
Тупой вопрос — а символ «-» точно входит в символы слова? Даже упрощу вопрос —
перекомпилировали ли Вы MySQL для того, чтобы символ «-» считался словарным?
Если нет, то WD-40 — это не одно слово, а два. Более того, эти два слова имеют
длину 2, что меньше, чем разумное значение ft_min_word_len. Поэтому я думаю,
что таких слов даже нет в индексе
Неактивен