Мы долго собирались это сделать, и вот наконец совершилось: у нас новый поиск на базе 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
картинка, оставленная пользователем
Вот то, что поиск стал "умным", т.е. ищет словоформы, - это очень удобно.
Теперь только запомнить и сориентироваться в формах поисковых запросов.
картинка, оставленная пользователем
картинка, оставленная пользователем
картинка, оставленная пользователем
Допустим я ищу свои сообщения в теме, поиск выдал 2 страницы результатов, дак вот одну страницу он выдал, а на другую не заходит, выдавая такую ошибку
Скрытый текст / Hidden text
картинка, оставленная пользователем
Спасибо за репорт, исправлено.
Это сообщение отредактировал j0k3r
так терь тэг Short Name можно удалить?
саш, ты примером поискового запроса решил меня потроллить? biggrin.gif
Мммм... Нет. А какой поисковый запрос тебя веселит?)
Это сообщение отредактировал j0k3r
Ищу в бумажном виде:
Винклер Г.А. Веймар 1918-1933: история первой немецкой демократии
Поиск сообщений по своему нику ранее выводился в порядке последнего чужого сообщения в теме, а сейчас - своего (т.е., порядок уже не по актуальности тем, а по актуальности своих же сообщений). Есть какой-то путь обыграть эту фичу, чтобы сделать как было?
С нами Аллах и четыре английских пулемёта
j0k3r
Цитата:
игра - найдет все темы/сообщения, содержащие все словоформы слова "игра",
игра престолов - найдет все темы/сообщения, содержащие вхождение данных слов,
"игра престолов" - найдет все темы/сообщения, содержащие вхождение данного словосочетания,
игра | престолов - найдет все темы/сообщения, содержащие словоформы либо слова "игра", либо - "престол",
=игра - найдет темы/сообщения, содержащие точное слово "игра", т.е. без словоформ ("игры", "играми" и т.п.),
игра -престолов - найдет темы/сообщения, содержащие словоформы слова "игра" и НЕ содержащие словоформ "престол".

ты регэкспы что ли освоил?))
[img]http://funkysouls.com/img/valera.jpg[/img]
я так понимаю, что по части слова поиск больше не работает? Довольно часто пользовался этим в поиске, который внизу страницы, особенно когда не совсем уверен в названии группы. Как пример группа 3jane раньше искалась просто по слову Jane, а теперь уже нет.
картинка, оставленная пользователемкартинка, оставленная пользователемкартинка, оставленная пользователем
Цитата:
я так понимаю, что по части слова поиск больше не работает?

похоже на то
тоже столкнулся с таким неудобством в разделе программ
только полностью название нужно вбивать
картинка, оставленная пользователем
картинка, оставленная пользователем
картинка, оставленная пользователем
xaozz
Wu-TangClaneR
Цитата:
по части слова поиск больше не работает

Верно. Ещё до перехода на этот движок я писал, что поиск полнотекстовый - ищет вхождение слова. То есть, просто по нескольким буквам слово он не найдет.

Но вот, например, специально по настоянию gugl сделал так, чтобы по запросу "nod" находился топик NOD32 teeth.gif
картинка, оставленная пользователем
Цитата:
поиск полнотекстовый - ищет вхождение слова

вот как с примером по ноду, та же ситуация с AIDA64
по слову aida не ищет, как раньше, теперь нужно всё название целиком писать, включая и циферки
так же, например, дело обстоит и с TaskInfo
по слову Task (которое входит полностью), не находит топик
или раньше мои любимые WinTools.net мог искать либо по win (именно по этому слову вообще много чего можно найти было полезного teeth.gif), либо по tools
сейчас же, как минимум, wintools
может можно какие-то исключения что ли для раздела ПО сделать? (как для настояния gugl ph34r.gif )
картинка, оставленная пользователем
картинка, оставленная пользователем
картинка, оставленная пользователем
Цитата:
Добавлено два фильтра:
user - по нику пользователя,

Что-то не вижу этого фильтра, на прежнем месте его нет, может кто помочь unsure.gif
картинка, оставленная пользователемкартинка, оставленная пользователем
картинка, оставленная пользователемкартинка, оставленная пользователем
[Flaw]
Скрытый текст / Hidden text
картинка, оставленная пользователем
Цитата: (Wu-TangClaneR)
Цитата:
я так понимаю, что по части слова поиск больше не работает?

похоже на то
тоже столкнулся с таким неудобством в разделе программ
только полностью название нужно вбивать

лично мне это жутко не нравится
очень неудобно
LongoLoginLongo, если так, то поиск выдает всего несколько тем, а ведь есть же люди у которых их несколько сотен sad.gif
картинка, оставленная пользователемкартинка, оставленная пользователем
картинка, оставленная пользователемкартинка, оставленная пользователем

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

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