MySearch - добавим капельку релевантности

В версии 1.1.29 добавлен некий элемент релевантности. Например, есть такие топики (перечислены в порядке их создания):

1. В тексте встречается слово «мама».
2. В тексте встречается фраза «мама мыла раму».
3. В тексте есть слова «мама», «рама».
4. И в тексте, и в заголовке встречается фраза «мама мыла раму».
5. В тексте встречается слово «рама».


Задаем поиск «мама мыла рам*».
В результатах топики будут выданы в таком порядке: 4, 2, 1, 3, 5

Т.е. максимальный вес имеют топики, в которых искомая фраза целиком встречается и в заголовке, и в тексте (если это поиск в топиках), потом те, где фраза целиком встречается в тексте, потом те, где встречается хотя бы одно из слов искомой фразы.

Модуль скачивать здесь: livestreet.ru/addons/74/

UPD По заявкам пользователей в версии 1.1.31 добавлен поиск по блогам — в названиях и описаниях блогов

Модуль поиска 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 )

Строгий и нестрогий поиск в модуле MySearch и прочие нюансы

Вообще про модуль MySearch можно читать здесь: livestreet.ru/blog/addons/2221.html

В поиске можно задавать слова, содержащие буквы (практически любых алфавитов), цифры, знак подчеркивания, знак минус и точку. Поиск идет без учета регистра, т.е. «дом», «Дом» и «ДОМ» воспринимаются одинаково. По умолчанию поиск идет по тексту и по атрибутам тегов <a ...>, <img ...>, <object ...>, <param ...>, <embed ...>. Т.е., если вы задали поиск по слову «дом», а в атрибутах изображения (тег <img ...>) стоит title=«мой дом», то топик с этим изображением тоже попадет в результаты поиска.

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

С целью экономии ресурсов поиск по топикам и по комментариям идет отдельно. Т.е. если вы на вкладке «Топики», то поиск будет идти только по топикам, если на вкладке «Комментарии», то поиск только по комментариям. По умолчанию поиск идет по топикам.

Теперь я объясню немного про два режима поиска.

1) Нестрогий поиск
Он был сделан изначально. Работает так: если вы указали в строке поиска слово «дом», то будут искаться все слова, в которых встречается это сочетание букв: «дом», «дома», «рядом», «домовой» и т.д.

2) Строгий поиск
Допускает использование символа «звездочка».
В этом режиме, если задать поиск по слову «дом», то модуль будет искать именно это слово, и проигнорирует такие слова, как «дома» и «задом», и т.д.

А вот запросу «дом*» уже будут соответствовать слова «дома», «домовой» и т.д. Соотвественно запрос "*дом" найдет топики со словами «задом», «передом», а с запросом "*дом*" совпадет слово «рандомный».

Какой режим вам устанавливать у себя на сайте — смотрите сами. Переключение режимов — в файле config/modules/mysearch/config.php.

Чтобы задать «строгий» режим:
define('MYSEARCH_STRICT', true);

Нестрогий режим:
define('MYSEARCH_STRICT', false);


Результаты поиска выдаются по умолчанию в виде сниппетов — небольших текстовых блоков, содержащих фрагменты с искомыми словами. Число в фрагментов в одном сниппете (также, как и размер сниппетов) можно регулировать через параметры файла конфигурации config/modules/mysearch/config.php (там все подробно закомментирвано — разберетесь).

Планируется позже вывести настройки модуля в Админпанели, но пока так — кому надо, тот правит ручками в файле.

MySearch - простой поиск без Sphinx'а

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


Читать дальше →

Куда пропал модуль/хак генерации случайных аватарок?

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

Заранее спасибо.

Важные вопросы, а также решения пробем локализации темы developer

Доброго времени суток!
Наткнулся в инете на сей двиг и решил посмотреть, что за оно, а позднее и поставить на свой портал. Движок в принципе неплохой, хоть и много чего нет. Ну и естественно, возникли вопросы и проблемы:
Касательно админа:
1.Как сделать, чтобы в меню пользователя была ссылка на админку и отображалась она только у админа?
2.Как сделать TinyMCE только у админа, ну или выбор редактора для конкретного юзера?
Поиск:
1.Для поиска, я так понимаю, надо на сервер что-то ставить? А можно его как-нибудь без Sphinx`a реализовать?
Проблемы:
1.После заполнения формы регистрации и нажатия на кнопку регистрации браузер кидает, что страница не найдена, хотя юзер регится…
2.В профиле месяц рождения отображается на русском. Как мне сделать его на белорусском? код, отвечающий за это такой:
{if $oUserProfile->getProfileBirthday()}
{$aLang.profile_birthday}:
{date_format date=$oUserProfile->getProfileBirthday() format=«j rus_mon Y»}

{/if}

Пробовал менять rus_mon на be_mon и т.п., но эффекта никакого. Не помешала бы загрузка из языкового файла, как я переделал в header_top.tpl темы developer. Там пункт меню пользователя «Написать» читалось из tpl-ника, что ограничивало многоязычность...))Я сделал, чтобы из topic_create грузило…
Общие вопросы:
1.Роясь в файлах тем заметил что есть иконки контактов для LiveJournal, VKontakte, Mail.Ru и т.д., хотя в двиге нет этого.Это на перспективу?
2.Не планируется ли внедрение админки и других языковых пакетов в дистрибутив? Мог бы помочь с белорусским языком.