Мы долго собирались это сделать, и вот наконец совершилось: у нас новый поиск на базе Sphinx!
Теперь это полноценный поисковый движок, который можно подкручивать под наши нужды.

Способы формирования поисковых запросов:
игра - найдет все темы/сообщения, содержащие все словоформы слова "игра",
игра престолов - найдет все темы/сообщения, содержащие вхождение данных слов,
"игра престолов" - найдет все темы/сообщения, содержащие вхождение данного словосочетания,
игра | престолов - найдет все темы/сообщения, содержащие словоформы либо слова "игра", либо - "престол",
=игра - найдет темы/сообщения, содержащие точное слово "игра", т.е. без словоформ ("игры", "играми" и т.п.),
игра -престолов - найдет темы/сообщения, содержащие словоформы слова "игра" и НЕ содержащие словоформ "престол".
прес* - найдет темы/сообщения, содержащие "прес" ("престиж", "преступник", "престол" и т.д.). Необходимо указать минимум два символа до звездочки.
Используя эти базовые элементы, можно начинать строить сложные запросы.

Возможности фильтрации внутри поискового запроса
Добавлено два фильтра:
user - по нику пользователя,
tag - по тэгу.
Данные фильтры можно применять как в общем поиске, так и в поиске внутри темы.

Примеры:
Поисковый запрос tag:UK tag:Indie user:Blast40185 по заголовкам найдет все темы, отмеченные тэгами UK и Indie за авторством Blast40185.
Поисковый запроc tag:USA tag:Horror трейлер по сообщениям найдет все сообщения, содержащие слово "трейлер" в темах, помеченных тэгами USA и Horror.
Можно использовать логику в запросах, например, tag:Punk -tag:Experimental user:s22 по заголовкам, найдет все темы, помеченные тэгом Punk и не имеющие тэга Experimental за авторством s22.
Запрос user:outmind user:Snorky36 по заголовкам/сообщениям найдет темы/сообщения от outmind и Snorky36.

Скорость перестроения поискового индекса
Так как Sphinx работает не напрямую с данными из базы данных, а строит свой индекс на основе данных, есть небольшой лаг между появлением последних данных из базы в индексе сфинкса. Полное обновление индекса происходит в 5 утра по Москве, а новые сообщения добавляются каждую минуту - то есть, лаг между появлением поста/топика в поисковой базе будет не более 60 секунд.

Варианты построения индекса
Так как это полнотекстовый поисковик, то он ищет полное вхождение слова. То есть, осуществляя поиск по слову "опера", мы найдем только однокоренные слова, но не "операционная" и т.п.
Еще до реализации нового поиска я писал про разные варианты построения индексов - например, про построение префиксных индексов и поддержки *, но там начинаются проблемы с падением производительности.

Ниже два примера:
Вариант 1 (префиксный)
www:/# search --sortby "@weight DESC" @title опера* | grep title
title=Операция Тайд
title=мыльная опера
title=реклама одного GSM оператора, непрошедшая цензуру
title=А какого оператора выбираешь ты?
title=Операция "Ы" и другие приключения Шурика
title=Вирус в оперативке
title=яваскрпит и опера
title=Opera / Опера
title=Список операторов сервера!
title=Распознаётся НЕ вся оператива!!!
title=Операция Пластилин / Operation Plasticine
title=Ubuntu Linux (операционная система)
title=Операция Дельта-фарс
title=Операция "Комбат" (2007)
title=Операция Дельта-фарс / Delta Farce (2007)
title=Генетическая опера / Repo! The Genetic Opera (2008)
title=А какой у вас мобильный оператор?
title=НЛО: Операция "Сокрытие"
title=OST - Операция ''Ы'' И Другие Приключения Шурика
title=Операция "Очистка Избранного"
Вариант 2
www:/# search --sortby "@weight DESC" @title опера | grep title
title=мыльная опера
title=Призрак Оперы/The Phantom of the Opera
title=яваскрпит и опера
title=Opera / Опера
title=OST - Опер Крюк
title=Призрак оперы / The Phantom of the Opera
title=Генетическая опера / Repo! The Genetic Opera (2008)
title=Призрак оперы / Il Fantasma dell' opera (1998)
title=Медея. Эпизоды (зонг-опера)
title=Другая Опера

Сейчас мы сделали второй вариант, но довольно легко можем переключиться на первый. переключились на первый вариант (используются префиксы, доступен поиск со звёздочкой).

Скорость и лимиты
Довольно важный пункт: поиск создает меньше нагрузки и работает намного быстрее, чем раньше!
Теперь при поиске по сообщениям нет принудительного переключения на поиск среди сообщений за "Последние 365 дней".
Вывод же ограничен 100000 результатами - этого более чем достаточно.


Надеюсь, новым поиском будет приятно пользоваться smile.gif
Выслушаю комментарии и предложения thumb.gif
last update 12.09.12
Это сообщение отредактировал j0k3r
картинка, оставленная пользователем
поиск не работает
ввожу название топика "Fiordmoss" - ничего не найдено, а вот же он
Цитата: oieuverj
поиск не работает
ввожу название топика "Fiordmoss" - ничего не найдено, а вот же он
судя по всему ты ищешь в "быстром поиске". там изначально сейчас заложен смысл того, что он ищет только по текущему подфоруму и вложенным. если искать, например с главной, то все находит, но это наверно не совсем правильно. подумаем.
картинка, оставленная пользователем
oieuverj
goodhoopoe
Неа. Топик создан в 13:39, пост оставлен в 13:41 - думаю, что поиском воспользовались минутой раньше, а за это время поисковый индекс ещё просто не успел обновиться.

Из шапки:
Цитата:
Скорость перестроения поискового индекса
Так как Sphinx работает не напрямую с данными из базы данных, а строит свой индекс на основе данных, есть небольшой лаг между появлением последних данных из базы в индексе сфинкса. Полное обновление индекса происходит в 5 утра по Москве, а новые сообщения добавляются каждую минуту - то есть, лаг между появлением поста/топика в поисковой базе будет не более 60 секунд.
картинка, оставленная пользователем
Мне стало очень интересно, сколько же на форуме тем R&S records? Как мне их найти? wink.gif
Сложно из-за амперсанда :(
Нашел и соединил в http://forum.funkysouls.com/index.php?act=ST&f=71&t=374410
Это сообщение отредактировал j0k3r
Цитата: meLCor
Сложно из-за амперсанда sad.gif
Нашел и соединил в R&S Records
неужели больше нет тем? я уверен, что несколько лет назад отписывался в какой-то другой
Как будет минутка - поищу. Если наткнешься случайно - дай знать, плз.
Это сообщение отредактировал j0k3r
Получается из-за смены на Sphinx поломался поиск в foobar2000?
Был:
Ссылка:
http://forum.funkysouls.com/index.php?s=&act=Search&CODE=01&keywords=$ansi($replace(%artist%, ,+))&namesearch=&exactname=1&joinname=1&cats=all&cat_forum=forum&forums=all&searchsubs=1&search_in=titles&result_type=topics&prune=0&prune_type=newer&sort_key=last_post&sort_order=desc

А теперь какая кодировка?
Решение ниже, но это не из-за сфинкса (который у нас уже много лет))
Это сообщение отредактировал j0k3r
Цитата: Zema
А теперь какая кодировка?
А попробуй так?
Ссылка:
http://forum.funkysouls.com/search/FTT100000/$replace(%artist%, ,+)


Это сообщение отредактировал UksusoFF - 04.03.18 в 13:10
картинка, оставленная пользователем
@j0k3r
Вбиваю название "Anicon" в поиск, мне выдаёт результат в виде темы "Barrelhead". Чудеса какие-то)

картинка, оставленная пользователем
картинка, оставленная пользователем
картинка, оставленная пользователем
картинка, оставленная пользователем
картинка, оставленная пользователем
@mercurio101
Класс, но пока вообще придумать не могу, как такое получилось ph34r.gif
картинка, оставленная пользователем
возможно, локальный баг, но проверьте, на всякий случай:
в расширенном поиске по умолчанию переключатель стоит на строке "поиск в форуме"
картинка, оставленная пользователем
раньше при выборе категории (например, "Музыкальные стили") переключатель автоматически становился на строку "поиск в категории", сейчас этого не происходит
картинка, оставленная пользователем
можно вручную кликнуть на переключатель "поиск в категории", но при этом переключатель "поиск в форуме" остаётся включенным
картинка, оставленная пользователем
где при этом происходит поиск - по форуму или по категории - непонятно huh.gif

p.s. проверял на ПК в опере и мозилле
Спасибо, будем фиксить.
Это сообщение отредактировал j0k3r
the soothing light at the end of your tunnel is just a freight train coming your way ©
my CDs - ask if you need smth
@corpsereviver
Исправлено wink.gif
картинка, оставленная пользователем

Этот топик читают:

85 ответов с 06.06.12 в 18:09
Назад в Помощь по FunkySouls