Уж очень хорошо отображаются результаты поиска. Что за функция? А то мой модуль выдаёт только первые 500 символов из найденного текста в аннотации к ссылке, независимо от того есть в нём поисковое слово или оно далее следует PHP: function search_textfrag($text) { $text = nl2br(stripslashes(substr($text, 0, 500)."...")); return $text; }
А, теперь, на php языке если можно, pls Ок, только у меня даже на паспорте нет фото размером 80х80px Если поможете с вопросом, то чтонибудь придумаю
Vasiliya специальные поисковые движки - mnoGoSearch, Solr, Sphinx в отличие от полнотекстового поиска в мускуле и других БД, позволяют индексировать с учётом морфологии языка
Gromo Спасибо, но мне не нужен сторонний движок, мне нужно просто изменить (хотя это уже совсем не просто, как оказалось) одну функцию в уже рабочем модуле. Я неправильно задала вопрос, родная функция (см. 1сообщение) не всегда выводит в краткой аннотации к найденной ссылке само поисковое слово (как на этом сайте или в гугл или итд), нужно вытащить из наденного текста именно тот фрагмент, который содержит переменную полученную из поля ввода поискового запроса, или если по русски - поисковую фразу. Я в курсе что изобретаю велосипед, но тем не менее мне это нужно
Vasiliya стандартными средствами этого добиться очень тяжело - придётся весь текст разбивать на куски, доступные для вывода в виде аннотации, затем делать поиск по данным кускам, и если найдено - выводить. к тому же искомое слово может встречаться во всём тексте, так что нужно ограничивать найденное кол-во совпадений до 1 части, а ещё нужно учитывать релевантность и вес слова во всём тексте. грубо говоря - это всё равно, что собирать мотоцикл, имея колёса, мотор и гаечный ключ. всё остальное нужно делать самому - коробку передач, руль, бензобак, систему подачи топлива и т.д... легче воспользоваться готовыми решениями (бесплатными!), на отладку которых уже ушли годы, проверенные в действии, работающие намного быстрее, чем стандартные средства базы данных.
Gromo да, готовые решения - это здорово, я знаю, у меня у самой в основе бесплатный cms, в принципе гугл поиск вполне даже очень хороший (результат накладывается на открытую страницу, оч удобно), но и скрипт который изначально был в этом движке, тоже хороший, а самое главное родной. Повозиться с ним для обучения очень полезно. Мне на одном форуме посоветовали воспользоваться preg_match_all, говорят с её помощью можно вытащить всё что угодно. Я написала регулярное выражение и думаю, что неправильно, потому что тогда во всех аннотациях - 0... Пусть без релевантности, хотябы 200 символов, но с искомым словом среди них, всё таки приятней чем просто какойто левый текст!
If you want something done, do it yourself Сделала, пусть это далеко и не mnoGoSearch, Solr, Sphinx, но выдаёт с первой попавшейся поисковой фразы и последующие после неё 500 символов, очень простой до смешного и короткий код PHP: function search_textfrag($text) { $text = nl2br(stripslashes(substr(stristr($text, $_GET['stext']), 0, 500)."...")); return $text; } можно ещё сделать алтернативу длины фрагмента (excerpt) PHP: function search_textfrag($text) { $text = nl2br(stripslashes(substr(stristr($text, $_GET['stext']), 0, $_GET['chars'])."...")); return $text; } Спасибо всем за информацию