Про REGEXP: строгий и нестрогий поиск

Quest

Guest
Про REGEXP: строгий и нестрогий поиск

Для поисковой системы необходим REGEXP который считал количество совпадений по шаблону ... при чем сопадение может быть как строгим (запрос - "иск", считает только "иск"), так и не строгим (считает и слова "поиск", "искать", "заискивать").. Пытался написать - но в итоге REGEXP или считает неправильно, или вобще не считает вхождение по шаблону. Применялся preg_match
 

Quest

Guest
БД- бессмысленно, она не применяется...мне не нужен готовый поисковмк ( я свой написал *-) ).... Необходимы соображения и мысли по сабжу...
 

Quest

Guest
Уже гораздо ближе к делу... но все же

http://aspell.sourceforge.net/
как там написано - это.. Aspell is a Free and Open Source spell checker - то бишь - проверка правописания (или я что то путаю ??? :D )
 

Alien

Новичок
а просто "иск" не катит что ли?

ты же подстроку ищешь.
или /me тупит в 6 утра?
 

Quest

Guest
Ищу строгое и нестогое соответсвие.... нужно что б считало и то и другое.... а то получается что посчитало к примеру 6, а в виде ссылки выделило только 3....
 

rembo

Новичок
там написано - это.. Aspell is a Free and Open Source spell checker
правильно, но если бы ты почитал чуть дальше то увидел бы связь между тем что хочешь ты и тем что кто-то уже сделал до тебя
http://www.phpclub.net/manrus/f/ref.pspell.html
 

Alien

Новичок
Ну и каким же образом aspell поможет строки подсвечивать? :D

Quest - задавай вопросы понятней.
Подсветка слова в котором есть подстрока:
PHP:
$document = preg_replace("/((\S*(".$sw.")\S*)\s?)/i",  "<b><font color=RED>\\2</font></b> " ,$document);
 

Фанат

oncle terrible
Команда форума
насколько я понял это бормотание,
у него есть строки, которые находяся лайком и строки, которые находятся =
вот он и хочет регэксп, который одни от других отличает. Хотя по-моемук, проще сразу в запросе это делать
 

Demiurg

Guest
Тебе морфологический поиск нужен или просто по подстроке ?
 

Фанат

oncle terrible
Команда форума
Деми, я тоже сначала подумал про морфологический. Но дело в том, что ПОИСК ему не нужен, он все уже нашел сам.

ему нужно количество совпадений посчитать.

И я не могу понять, почему бы это не сделать сразу при поиске
 

Quest

Guest
Фанат (последний постинг) - верно подумали ))))

Сегодня снова взялся за поисковик и понял в чем дело ....

Подсветка слов тут не причем

Алгоритм работы такой... Система ищет совпадение в самом файле.... после нахождения - выбираются 500 байт из начала файла и вытаскиваются на обозрение в качестве аннотации к результату поиска... Так вот REGEXP искал эти совпадения по шаблону поиска в этой аннотации!!!! Теперь все понял..но возникла новая проблема .. Предположим мне нужно открыть файл.. пропустить его через поиск а потом (в зависимости от результата) вытащитьиз него эти несчастные 500 байт.. Пока что ничего путного не придумал.. Хотелось бы обойтись всего однократным открытием файл... Что б не тормозило сильно...
 

Demiurg

Guest
Во первых если тебе нужен морфологический поиск, то нужен словарь совпадения слов. На сколько я знаю это так реализуется.

Во вторых зачем тебе регулярное выражение?

Втретих если тебе нужна скорость, то наджо составлять индексы, и производить поиск уже по ним.
 

Quest

Guest
Во первых мне не нужен морфологический поиск.. Во вторых составлять индекс всего для 50 небольших текстовых файлов -глупость...
 

Demiurg

Guest
>Во вторых составлять индекс всего для 50 небольших текстовых файлов -глупость...
я бы не сказал.
А как на счет регулярных выражений ?
 
Сверху