yura3d пишет:Числа не индексируются поиском, так задумано. Поиск чисел доступен только при поиске в теме
Блин, жаль... Для меня это сильно актуально.
(Добавление)
В общем проблема решена. Не знаю как скажется на производительности, но все заработало. Если нужно кому, то вот решение.
Открываем файл search.php
Находим строку
CODE:preg_match_all('/([^a-zA-Zа-яА-ЯёЁ]|^)([a-zA-Zа-яА-ЯёЁ]{4,})(?![a-zA-Zа-яА-ЯёЁ])/',$fm->input['search_keywords'],$key_words);
и заменяем ее на
CODE:preg_match_all('/([^0-9a-zA-Zа-яА-ЯёЁ]|^)([0-9a-zA-Zа-яА-ЯёЁ]{4,})(?![0-9a-zA-Zа-яА-ЯёЁ])/',$fm->input['search_keywords'],$key_words);
В этом же файле ищем
CODE:$entered_word = preg_replace('/([^a-zA-Zа-яА-ЯёЁ]|^)([a-zA-Zа-яА-ЯёЁ]{1,3})(?![a-zA-Zа-яА-ЯёЁ])/', '', $_SEARCH['entered_word']);
и заменяем на
CODE:$entered_word = preg_replace('/([^0-9a-zA-Zа-яА-ЯёЁ]|^)([0-9a-zA-Zа-яА-ЯёЁ]{1,3})(?![0-9a-zA-Zа-яА-ЯёЁ])/', '', $_SEARCH['entered_word']);
ищем
CODE:$searchinmessage = sprintf($fm->LANG['YOUSEARCH'],preg_replace('/([^a-zA-Zа-яА-ЯёЁ]|^)([a-zA-Zа-яА-ЯёЁ]{1,3})(?![a-zA-Zа-яА-ЯёЁ])/', '$1<font color="red">$2</font>', $_SEARCH['entered_word']));
заменяем на
CODE:$searchinmessage = sprintf($fm->LANG['YOUSEARCH'],preg_replace('/([^0-9a-zA-Zа-яА-ЯёЁ]|^)([0-9a-zA-Zа-яА-ЯёЁ]{1,3})(?![0-9a-zA-Zа-яА-ЯёЁ])/', '$1<font color="red">$2</font>', $_SEARCH['entered_word']));
теперь открываем search/search.php
ищем
CODE:$query = preg_replace('/\b([a-zA-Zа-яА-ЯёЁ\-\+\!]{1,3})\b/', "", $query);
заменяем на
CODE:$query = preg_replace('/\b([0-9a-zA-Zа-яА-ЯёЁ\-\+\!]{1,3})\b/', "", $query);
ищем
CODE:$serach = array('/[^a-zA-Zа-яА-ЯёЁ]/is',
'#\b[a-zA-Zа-яА-ЯёЁ]{1,2}\b#is',
'/\s+/s');
и заменяем на
CODE:$serach = array('/[^0-9a-zA-Zа-яА-ЯёЁ]/is',
'#\b[0-9a-zA-Zа-яА-ЯёЁ]{1,2}\b#is',
'/\s+/s');
Все, теперь поиск ищет и буквы и цифры.(Отредактировано автором: 17 мая 2009 — 14:37) |