Модуль поиска MySearch - вышла версия 1.1

Выложил версию 1.1 (сейчас доступен билд 1.1.20)

Прилично так доработал модуль, поэтому решил сменить номер версии на 1.1.

Если кратко, то основные нововведения:
1) Много чего вынес в конфиг для более гибкой настройки модуля — поддерживаемые символы народов мира, параметры подсветки и т.д.

2) Сделал формирование сниппетов для вывода результатов и уложил в одинаковый вид вывод топиков и комментов

3) Сделал возможность временно отключать модуль. Например, если надумали поставить Сфинкса или еще какую-то искалку, но сразу не «выходит каменный цветок», и надо периодически отключать MySearch для проверки, а потом опять включать. Щас это можно делать через изменение одного параметра в конфиге.

И много чего еще по мелочи, убив кучу времени на бодание с UTF-8.

Модуль уже выложил, будет доступен после модерации по прежнему адресу на livestreet.ru/addons/74/

Обсуждение предыдущей версии здесь: livestreet.ru/blog/addons/2221.html

UPD Версия 1.1.22 — пагинация результатов запроса
UPD Версия 1.1.23 — удаление лишних тегов из сниппета, показываются только теги 'a', 'img', 'object', 'param', 'embed', т.к. по ним идет поиск
UPD Версия 1.1.24 — добавлена опция исключения всех тегов из поиска
UPD Версия 1.1.26 — Исправлен баг, считающий в результатах выдачи неопубликованные топики и удаленные комменты
UPD Версия 1.1.28 — Если искомые слова встречаются рядом, то они попадут в один фрагмент сниппета. Изменено значение параметра MYSEARCH_SKIP_ALL_TAGS — если он задан, то поиск в тегах все равно идет, но сами теги в результатах поиска не показываются
UPD Версия 1.1.29 — Добавлены элементы релевантности
UPD Версия 1.1.34 — багфикс ( livestreet.ru/blog/3552.html )

82 комментария

avatar
ну значит, так.
т.к. я «профукал», что некоторые файлы должны быть в /new/actions/ActionMysearch. то сейчас их отправил туда.
получается так:
при пустой строке — найден 1 топик, но не показывается.
ввожу 1 символ — Длина запроса не может быть меньше 3, Поиск не дал результатов.
ввожу слово, которое точно есть выводил «найден 1 топик» и ниже пустой экран.

Решил обновить. Скачал и поставил последнюю версию. Выставил false
Пустой запрос — пишет в результатах поиска «Топики 1», хотя нет ничего.
Ввожу слово, которое точно есть в тексте — найдено топиков 3 (но показывает только 2). При чем по остальным запросам все верно :)
Да и еще вот что — он я так понимаю показывает теги. Например, в результатах выводится
<strong>запрос</strong>, </b> и др.
И даже
<.../images/1/1/6/0/1/bb596456ed.jpg" title=«запрос»/>

так и должно быть?

Теперь вот — ввожу слово которое есть и в топике и в коменте — Топики (3), Комментарии (ничего не написано), но хотя если перейти по этой кнопочке «Комментарии», то он покажет найденный комент.
  • F-5
  • +2
avatar
в общем при «пустом» запросе, он выводит
«Результаты поиска: Поиск» :)
avatar
Ага это фича шаблона ЛС: если не вводить поисковую фразу, то ищет слово «поиск», потому что строка по умолчанию в поле поиска сидит.
avatar
Вывод топиков и комментариев в одинаковом виде был сделан для чего?

Присоединюсь к вопросу про теги в результате поиска.
avatar
Результат поиска по умолчанию — это сниппет, а не топик и не коммент. Поэтому посчитал более логичным единообразное отображение результатов.
avatar
1) Топики и комменты — в отличие от поиска Сфинксом тут поиск идет раздельно. Сделано специально для уменьшения нагрузки.

2) Теги — да показывает. Ибо:
а) поиск идет не только по тексту, но по атрибутам тегов (типа title, alt)
б) результат поиска по умолчанию — это сниппет, и если найденая фраза внутри тега, то ее тоже надо показать.
Вот только не должно быть ни strong, ни b, ни прочих бестолковых (с точки зрения поиска) тегов. Понадеялся в этом плане на Jevix и поэтому особо тщательно не тестировал. Но, видимо, зря. Буду проверять.
avatar
Кто его ставил, где посмотреть как работает?
avatar
avatar
у Вас точно установлена последняя версия? вывод результата должен выглядеть не много по другому.
avatar
Извините. Была моя ошибка при установке модуля. Сейчас все правильно, стоит версия 1.1.20.
avatar
При попытке автоматической установки пишет:
Fatal error: Call to undefined function seekinstallfile() in /public_html/mysite.ru/update/modules/ls_mysearch/install.php on line 27

С предыдущими версиями был полный порядок (в плане автоматической установки).
avatar
да, автоматом у меня белый экран в ФайерФоксе, так что я в ручную копировал.
avatar
перезалил все файлы заново в ручную. всё вроде нормально работает.
  • F-5
  • 0
avatar
Странно, в результатах поиска некоторые результаты отображаются нормально (со всем оформлением, тегами, элементами), а некоторые без оформления (теги и прочий хлам на виду). В чем может быть дело?
avatar
Так же не совсем ясна ситуация с постраничностью. Например у меня результат поиска — 46 пунктов, а на странице отображается только 7.
avatar
А дай, где глянуть можно. Вообще-то, без оформления должны результаты поиска показываться. Нужен пример, чтобы я увидел вживую результаты с оформлением. И про 46 пунктов тоже.
avatar
Пример прям щас не могу, чуть позже, т.к. на рабочей версии все, и он «перебивает» мой нынешний поисковик.
Все работает, я просто сглупил. Единственное что не пашет — постраничность. Пробую разобраться…
avatar
подскажи как исправил?
у меня таже картина, пишет нашел 50, отображает только по 7, и в топиках и комментариях.

Постраничность тоже не работает. Хотя не читал что должна работать…

avatar
такая же ситуация. если ввести простой запрос типа:
как это

выдает — найдено 50, а показывает 10.
avatar
интересно :) на твой запрос:
как это

у меня выдало:
найдено 163, а показывает тоже 10 :)

на другие любые запросы точно такая же картина — находит много, а список из 7,9,10…
avatar
Хочу увидеть своими глазами, как выводит список то 7, то 10, хотя найдено 163. Если найдено больше 10, то выводить должно ровно 10 сниппетов — 1-ю страницу результатов. Используется параметр BLOG_TOPIC_PER_PAGE из конфига ЛС. Хотя, наверное, стоит специальный параметр завести в конфиге самого поиска.

Теперь о самой проблеме — сейчас выложена версия 1.1.22, где должна быть нормальная разбивка на страницы. Проверяйте и отписывайтесь о результатах.

ЗЫ Обновление ставится просто накатом поверх имеющейся версии (это на случай, если инсталлятор не сработает).
avatar
так 1.1.23, заработала разбивка на страницы и стало нормально выдавать поиск(количество указанных соответствует выданным)
все ок.
avatar
Спокойно, ребята, разобрался с постраничностью. Седня выложу новую версию, где все ок.
avatar
Неприятная деталь…
<img src="http://*****/uploads/images/4/367770d1d3.jpg" title="картина Orange"/> Посмотреть ее можно…

…> <img src="http://*****/uploads/images/4/52db9b33d7.jpg" title="картина Orange"/> Существует много вариантов этой картины — <strong>картина Orange…


вот такое может выдавать пачками по поисковому слову (допустим Orange), если в оно присутствует в title, или в самой ссылке :(
  • dred
  • 0
avatar
Не искать в тегах?
avatar
блин, тег может быть:
<b><strong>


наверное нужно в ссылках и изображениях..,
а так у меня все страницы поиска в «техническом мусоре» :(
avatar
Версия 1.1.23 — удаляются все теги, кроме 'a', 'img', 'object', 'param', 'embed'
avatar
а что делать с 'a', 'img'?
можно ли предусмотреть отключение их из поиска, допустим где-нибудь в конфиге? мусорит результаты ужасно:
<img src="http://*****/uploads/images/4/367770d1d3.jpg" title="картина Orange"/> Посмотреть ее можно…

…> <img src="http://*****/uploads/images/4/52db9b33d7.jpg" title="картина Orange"/> Существует много вариантов этой картины — <strong>картина Orange…
<img src="http://*****/uploads/images/4/367770d1d3.jpg" title="картина Orange"/> Посмотреть ее можно…

…> <img src="http://*****/uploads/images/4/52db9b33d7.jpg" title="картина Orange"/> Существует много вариантов этой картины — <strong>картина Orange…

<img src="http://*****/uploads/images/4/367770d1d3.jpg" title="картина Orange"/> Посмотреть ее можно…

…> <img src="http://*****/uploads/images/4/52db9b33d7.jpg" title="картина Orange"/> Существует много вариантов этой картины — <strong>картина Orange…

avatar
Хм, попробую, но не уверен, что получится. Ведь поиск по базе идет, а там все в исходном виде хранится. Поиск делается встроенным Regexp-ом мускула, а он какой-то кастрированный. Поэтому не знаю, смогу ли заставить его искать только вне тегов.
avatar
Версия 1.1.24 — добавлена опция исключения всех тегов из поиска
В конфиге строку
define('MYSEARCH_SKIP_ALL_TAGS', false);

заменяешь на
define('MYSEARCH_SKIP_ALL_TAGS', true);

Отпишись, каков будет результат
avatar
ок, поставлю и отпишусь, только не понял, что за тегами b,i,strong… искать не будет?
avatar
из поиска исключаются атрибуты тегов, то, что внутри парных тегов — должно искать
avatar
поставил, первые впечатления- в title (img) по поисковому запросу не находит, значит д.б. ок

1. выставил в
define('MYSEARCH_STRICT', false);

т.к. в true при запросе состоящем из трех слов(допустим «картина Orange Green») выдавало в результатах — по первому слову (т.е.везде где встречалось слово картина), естественно это неудобно -человек ищет допустим это словосочетание, а «картина» его не интересует в 200 найденных вариантах.
Сложилось мнение что, у тебя true и false попутано, т.к. после
define('MYSEARCH_STRICT', false);

стало находить то что нужно.
2. если запрос из 1 слова, то подсвечивает. Если 2 и более-подсветки нет, и выдает в результатах поиска кусок текста, символов 1000 или более
3. опять всплыло: найден 1 комментарий, а сам комментарий не выводится
avatar
(допустим «картина Orange Green») выдавало в результатах — по первому слову (т.е.везде где встречалось слово картина), естественно это неудобно -человек ищет допустим это словосочетание, а «картина» его не интересует в 200 найденных вариантах.

так сначала выводятся топики в которых встречаются все эти слова, а потом те в которых эти слова по одному.

и к тому же я попробовал в false ввести запрос типа:
как это

у меня выводит все топики раскрытыми. у тебя есть такая проблема?
avatar
ты не понял, я скопировал фразу из 3 слов «картина Orange Green», в поиске выдало кучу мусора со словом картина, если человеку нужно найти Orange Green — он фиг его когда найдет в 200 результатах

с false находит именно то что нужно
avatar
я уже писал
выдает в результатах поиска кусок текста, символов 1000 или более

выходит, да, раскрытые.
— посмотри внимательно, с false поиск получается строгий, а true -нет. Ну покрайней мере у меня так
avatar
поиск по комментариям не выдает!

находит «25», стоит разбивка на страницы( получается у нас 3 (выдавать должно по 10)) — но ничего не показывает и так по любому запросу (только в комментариях)
avatar
У меня всё ищет и находит:) Правда не пишет сколько коментов найдено, но если перейти по кнопке Комментарии (в результатах поиска), то там показаны коменты с запросом.
avatar
раньше, в 1.23 было так)
поставил 24 и изменил на false — выдача по комментам исчезла, хотя количество найденного показывает
avatar
тогда понятно:) просто у меня то 1.23 еще установлен.
avatar
Как должен работать модуль, подробно расписано здесь: livestreet.ru/blog/2228.html

Если работает не так, то нужен конкретный пример: вот на этом сайте с такими-то настройками задаем поиск такой-то. Должны получить такие результаты, а получаем вот эдакие. Гарантий давать не буду, но, во всяком случае, попробую разобраться, в чем проблемы.

Проблема, когда показывалось одно число результатов, а выводилось сниппетов меньше, решена в версии 1.1.26 — черновики и удаленные комментарии хоть не выводились, но считались.
avatar
новая версия не показывает комментарии.

dred выше еще писал:
выдача по комментам исчезла, хотя количество найденного показывает
avatar
работает! Только пишет что найдено Топики (2), а показывает 1. На страницы разбивает, strong не показывает.
avatar
А можешь показать, где это и на каком запросе? Не должно так быть
avatar
отправил письмом в личку.
avatar
Только одно слово в результате подсвечивает (или часть слова). Если слов неколько — не подсвечивает ничего.
avatar
есть у кого-нить проблемы с поиском по комментариям? у меня не находит.
  • F-5
  • 0
avatar
Была проблема. Поставь обновление 1.1.28
avatar
Не находит слова, которые находятся до многоточия. Например «слово...» не находит не с точками не без (((
avatar
в комментариях
avatar
Установил, поиск работает. Но вверху выскакивает следующее:

Notice: unserialize() [function.unserialize]: Argument is not a string in /home/httpd/vhosts/oneloko.ru/httpdocs/classes/modules/sys_cache/Cache.class.php on line 105

Notice: unserialize() [function.unserialize]: Argument is not a string in /home/httpd/vhosts/oneloko.ru/httpdocs/classes/modules/sys_cache/Cache.class.php on line 105

Notice: unserialize() [function.unserialize]: Argument is not a string in /home/httpd/vhosts/oneloko.ru/httpdocs/classes/modules/sys_cache/Cache.class.php on line 105

Как бороться?
avatar
Неужели только в поиске такое выскакивает? Судя по всему, проблемы с файловым кешем, поэтому выскакивать должно практически везде
avatar
подсткажите пожалуйста, а как вызвать этот модуль?) Ну файлы загрузил, а что нужно в коде хэдера вписать, чтобы поиск то вылез? :)
avatar
он становится на место стандартного окошка. Для пользователя установка модуля остается незамеченой. Просто поиск начинает работать, и все
avatar
хм. у меня ни слово о поиске в шаблоне… а как он дожен вызываться?
вот всё что в шапке про поиске:
<DIV class=search_form>
			форма поиска
		</DIV>
avatar
а что еще должно быть?
задавать поиск на сайте пробовал?
avatar
а как это сделать? я недавно установил этот движок и не разобрался…
avatar
Проверить работу мода можно по ссылке
название-сайта/search/

Акакая версия LS?
Форму поиска(если нету) можно выдернуть из шаблона new к примеру.
avatar
человек, который ставил движок похоже потёр версию… где можно посмотреть?
сайт на локальном сервере.
avatar
в index.php
в define('LS_VERSION','тут версия');
avatar
там нету такой строчки, похоже человек спрятал..(
единсвенное про define это
define('SYS_HACKER_CONSOLE',false);
avatar
ты вообще понимаешь, что такое поиск? ты хоть раз в жизни хотя бы в гугле или яндексе искал? здесь все так же — в поле поиска набираешь слово, которое хочешь найти, и жмешь клавишу «ентер».
avatar
это все ясно, но при обращении на ../search/ там 404 ошибка. Хотя все файлы я залил.
avatar
../search/ открывается даже без установки мода.
У тебя скорее всего просто старая версия LS.
Если ты говорил, что шаблон аля habr, то мод это скорее всего работать там и не будет.
avatar
Модуль разрабатывался и тестировался для версии ЛС 0.3.1
Под более ранними версиями даже и не пробовался, и не вижу смысла заморачиваться, можно ли его как-то адаптировать.
avatar
Отличный модуль! Тем, кто без сфинкса, просто маст хэв =) Спасибо.
avatar
После установки не хочет искать. Т.е. что бы я ни ввел — пишет что:
Длина запроса не может быть меньше 3 и больше 255 знаков


floomby.ru/content/G5QhvqYYHk/

Запрос вида:
http://www.site.ru/search/?searchfor=%D0%BA%D0%BE%D1%81%D1%82%D0%B5%D1%80


Может быть так, что «перехватчик» с предыдущей версией поиска конфликтует? Как лучше поступить?
avatar
Как лучше поступить?
Для начала — обновить модуль вручную. В ридми описано, как это сделать. Если все поставлено корректно, то «перехватчик» не может конфликтовать с предыдущей версией по определению — потому что предыдущей версии не остается. А если какие-то скрипты модуля от одной версии, какие-то — от другой, то тут что угодно может быть.
avatar
Ставил вручную изначально.
Ок, попробуй пройтись по всем файлам еще раз. Спасибо.
avatar
Все отлично, заработало.
Надо поменял в поле поиска (то что в шапке сайта на всех страницах) с «name='searchfor'» на «name='q'»
Это если кто-то так же как я тупить будет :)
Автору спасибо, отличная вещь получилась.
avatar
Действительно надо изменить «searchfor» на «q», сделать это нужно в header_nav.tpl для шаблона «new». При этом, как это было в моем случае, нужно раскоментировать <form.....>… где <input… name=«q» />..... А старый блок form где name=«searchfor» удалить или закоментировать.
avatar
У меня та же ошибка, стоит q в header_nav.tpl, при любом запросе выводит «Длина запроса не может быть меньше 3 и больше 255 знаков», при вводе адреса просто site.ru/search выводит эту же ошибку.
Началось все после переноса на новый хостинг, до этого все работало, то есть вряд ли упущено, что то в коде. пробовал дать права на папки /classes/modules/ и /config/ 777 не помогло.

Подскажите пожалуйста в какую сторону копать.
avatar
нашел причину…
[message] => User admin already has more than 'max_user_connections' active connections
[query] => mysql_connect()

вот, что ответили хостеры:
Yunus: [12:44:52 PM] hi, i'm getting error [message] => User admin already has more than 'max_user_connections' active connections [query] => mysql_connect(), how can i increase number of connections to mysql BD ??
Shawn: [12:44:58 PM] Hello
[12:45:12 PM] Unfortunately you cannot increase the max connections
[12:45:34 PM] You will need to set your script to close the connection after the db has been queried

Выход только поменять хостера??
avatar
Спасибо за модуль.
avatar
А где взять мануал по установке данного модуля?
avatar
1) Идем сюда: livestreet.ru/addons/74/
2) Распаковываем скаченный арзив
3) Читаем файл readme.txt
avatar
В архиве с модулем есть полное описание установки!
avatar
То то он больно на архив непохож ls_mysearch_1.1.31.htm
avatar
Не понял, ты о чем? Идешь по ссылке, что я выше дал, жиешь большую зеленую кнопку «Загрузить», получаешь zip-файл…

Или ты где-то в другом месте этот модуль берешь?
avatar
С третьей попытки архив взят.
avatar
Нормальной архив грузится, смотри в сторону своего интернета.
avatar
Обычно Opera такие приколы делает. Архив скачивает как html страницу. Достаточно просто переименовать .html в .rar. Ну или в чем там архивировано.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.