Luge Тогда выход напрашивается у меня один (кроме как застрелиться или выпить йаду): 1. Перед добавлением сообщения в базу, в отдельное поле вписываем содержимое сообщения без всех слов менее 4-х символов, без тегов и знаков препинания. 2. В поиска искать по этому полю, а "подсвечивать" и выводить основное, в котором все теги есть. Полу "тру" вышло))
В принципе, тут уже озвучили все мои фантазии. 1. хранить текст с BB, а не с html 2. хранить отдельно рафинированный текст (мне бы хватило и strip_tags, но можно заморочиться) 3. Посмотреть Sphinx, вот наверняка в нем есть поиск с учетом наличия тегов. Омг
Итак, сделал на основе всего вышесказанного. Выложу тут решение, вдруг кому понадобится. 1. Сделал второе поле text2 2. При вставке сообщения в базу в поле text (которое без изменений со всеми тегами), инфа дублируется в поле text2 таким образом [sql]mysql_query("INSERT INTO `forum_posts` VALUES (....,'".mysql_real_escape_string($body)."', '".strip_words($body)."')");[/sql] 3. Сама функция PHP: function strip_words($words) { $end = preg_replace('/([ ](\S){1,3}[ ])|([^a-zа-яё0-9 \-])/i',' ',strip_tags($words)); $end = preg_replace('/[ ]{2,}/i',' ',$end); return $end; } (не идеальная регулярка правда) 4. Ну и запрос для поиска [sql]SELECT `id`, `ulogin`,`user_id`,`date`, `text` FROM `forum_posts` WHERE (`text2` LIKE "%<img%" ) ORDER BY `date` LIMIT 10[/sql] 5. Функция подсветки уже была озвучена, хотя можно и без нее это все юзать. Всем спасибо за совет. Если кто чем захочет улучшить данный набор букаф - рад буду ознакомиться.
И при загрузке страницы каждый раз преобразовывать bb-коды в html, да я смотрю спецы собрались. А в чем преимущество? А если ввод идет в html? По второму - тоже спорный вопрос, если нужно организовать поиск в новостном движке (~100000 статей), хранить в базе еще копии статей - напряг...
Оторвать руки за апание старых топов. Еще бы через пять лет подняли эту позорную тему. Все давно решилось и пять раз перетравлено.