Временное решение проблемы поиска

Запилил архив форума с блэкджеком и поиском, может кому пригодится: http://impancake.net/ep

Туда закачаны все шесть с гаком сотен тысяч сообщений с форума (не считая скрытых), и периодически подгружаются свежие.
Главная страница представляет собой аналог страницы поиска новых сообщений — сверху идут те темы, в которых были последние ответы.
Иконка домика слева от темы ведёт в ту же тему на форуме, а остальные ссылки позволяют перемещаться по её архивной копии.

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

Также есть возможность вывода сообщений конкретного пользователя. Для этого надо либо кликнуть по его нику в какой-нибудь теме или на главной странице, либо прямо вбить ссылку вида:
http://impancake.net/ep/userposts/BUzer
(если в имени есть пробел, то вместо него надо ставить плюс, иначе браузер не поймёт)

В общем, функции пока что довольно базовые, но программа ещё допиливается, и в планах есть расширенный поиск с более гибкими настройками. Если, конечно, форумный поиск не заработает раньше :)
Аватара пользователя
BUzer
Ба-альшое спасибо!
Аватара пользователя
[BC]afGun
Ура-а-а! Спасибо!
Аватара пользователя
Masha Event
/ехидно/ Оно, кнешна, хорошо... А гугль с ключом site:http://forum.everypony.ru отменили? ;)
Аватара пользователя
Белый крокодил
В качестве идеи: может, стоит сортировать сообщения по убыванию дат, а не по возрастанию?
Аватара пользователя
kuzya93
Ура, спасибо!
*убёгла читать первые сообщения пользователей. просто потому что забавно*

Белый крокодил писал(а):/ехидно/ Оно, кнешна, хорошо... А гугль с ключом site:http://forum.everypony.ru отменили? ;)
Если хочется почитать сообщения пользователя - удобней вывод как на форуме через профиль был, и как в этой замене поиска. А не гугл.

/Лиса
Анонимная поняшка
Ого, отличная работа, молодец. Живое обновление данных?
Аватара пользователя
NTFS
Да, раз в четыре минуты забирает новые сообщения (там внизу статус есть). Работает, кстати, на том же Cubietruck'е, про который как-то рассказывал: viewtopic.php?p=592829#p592829

Кузя, ага, наверное переключатель будет.
Аватара пользователя
BUzer
Ну что ж, активно пользуюсь этим поиском - могу сказать, что решение дельное. Встроенный поиск, конечно, ничто не заменит, но работающий внешний поиск намного удобнее неработающего внутреннего :-)
Из неудобств - всё-таки хотелось видеть свежие сообщения сверху, а не снизу. ORDER BY, Sort() или что там в твоём ядре поддерживается? Одна строчка кода сделает систему на 20% круче.
Аватара пользователя
NTFS
А свежие сообщения сверху в результатах поиска, или в тредах вообще? Я просто думал, что речь шла только о результатах поиска (и списка сообщений пользователя), но вот внезапно для себя открыл, что на форуме для обычного чтения тредов это тоже настраивается :)
Аватара пользователя
BUzer
Итак, несколько нововведений:

  • Добавлена страница настроек, где можно выбрать порядок сортировки постов во всех режимах, какие только есть.

  • В связи с этим возникает потребность в механизме постоянных ссылок на посты, потому что содержимое страницы под одним и тем же номером может отличаться для разных пользователей в зависимости от их настроек. В этом деле теперь внесена ясность: дата над сообщением (с иконкой якоря) всегда даёт постоянную ссылку на этот пост в архиве. Рядом с ней есть ссылка «на форуме», которая ведёт на это же сообщение на форуме.

  • Появилась возможность выводить список тем с участием определённого пользователя, а также возможность посмотреть посты конкретного пользователя в определённой теме. За это отвечают две кнопки над сообщением: «темы» и «в этой». В списке тем пользователя при этом также присутствует дополнительная колонка с зелёными кнопками, на которых написано, сколько сообщений пользователь оставил в этой теме.

  • В дополнение к двум режимам поиска в постах и в темах добавлен третий режим: поиск пользователя. Меня раньше постоянно напрягало, что чтобы найти чьи-то посты, надо было либо помнить его ник с точностью до регистра каждой буквы (чтобы вбить в URL), либо искать какой-нибудь его пост. В режиме поиска пользователя можно ввести любой кусочек его ника не важно в каком регистре, и он сразу выдаст сообщения пользователя, у которого больше всего постов из всех, чей ник содержит этот кусочек.
    Примеры: smt — SMT5015; gordon — GordonFreemane; ангел — Ангелочек Нежный; и т.д.

  • Дата последнего сообщения в последней колонке на главной странице теперь является ссылкой, и ведёт на это же сообщение на форуме. То есть, похоже на домик слева, только ссылка не в начало, а в конец темы.
    Хотя для тех, у кого на форуме включено отображение постов в обратном порядке, разницы нет.
Аватара пользователя
BUzer
Бузер, ты не увлекайся, а то лентяи вообще ничего делать не будут)))
А вообще тебе респект.
Аватара пользователя
GordonFreemane
Спасибо :) Вообще, у меня ещё есть желание сделать так, чтобы как-нибудь выделялись темы, где появились новые сообщения, но вот всё не могу придумать нормальный критерий, по которому она будет это определять. Она же не знает, какие темы я читал на форуме…
Аватара пользователя
BUzer
BUzer писал(а):Спасибо :) Вообще, у меня ещё есть желание сделать так, чтобы как-нибудь выделялись темы, где появились новые сообщения, но вот всё не могу придумать нормальный критерий, по которому она будет это определять. Она же не знает, какие темы я читал на форуме…

Ты можешь читать форум через свою оболочку в фрейме, которая будет запоминать твои переходы. Не лучшее решение, но должно работать - я так делал с региональным форумом.
Аватара пользователя
NTFS
GordonFreemane писал(а):Бузер, ты не увлекайся, а то лентяи вообще ничего делать не будут)))
А вообще тебе респект.


Как мне еще тогда намекнули: "пусть весь дизайновский интерфейс форума теперь натянет, и посмотрим, как заработает".

Основная проблема текущего движка заключается именно в интерфейсе: при подбивке дизайна под поней и интеграции в общий портал, не было учтено большое количество сообщений, из-за которого движок поиска и упал.

Впрочем, увлекаться действительно не советую. Текущим форумом не занимаются по другой причине, и уж точно не лентяйстве.
Аватара пользователя
[BC]afGun
По просьбам трудящихся, тему прикрепил, ибо нужна пользователям на видном месте и в ближнем доступе.
Аватара пользователя
NTFS
Добавил ещё одну фичу: теперь клик по надписи "Юзернейм писал(а):" в цитате перебрасывает к цитируемому сообщению.
При этом перезагрузки страницы не происходит, если оригинальное сообщение находится на той же странице — только перескакивает прокрутка.

Цитаты без указания автора автоматически дополняются авторством из найденного сообщения. При этом после "Юзернейм писал(а):" дописывается "(автоопределение)", чтобы в случае чего было видно, где с текстом пошаманила автоматика.
Аватара пользователя
BUzer
Давно хотел прикрутить одну штуку, но что-то только сейчас руки дошли. Теперь если в поиске дописать звёздочку в конце слова, то будут найдены все остальные слова, начинающиеся на это слово.
Например, поиск по сезон* помимо постов с самим словом "сезон" также найдёт посты с "сезона", "сезонов", "сезону" и т.п.
Посередине или в начале слова звёздочка не работает, только в конце. Минимальная длина слова при поиске со звёздочкой — четыре символа (в названиях тредов — два).

Плюс пофиксил небольшой визуальный баг, когда список тредов сжимаешь по горизонтали, то все строки резко становились высотой в две строки. Теперь переносятся только строки с длинными названиями тредов.
Аватара пользователя
BUzer
BUzer писал(а):Посередине или в начале слова звёздочка не работает, только в конце.

Эм, регулярные выражения возможны?
Не то, чтобы прям сильно нужно, просто интересуюсь.
Аватара пользователя
NTFS
Не, какой там :) Оно вообще всё заточено под поиск прямых совпадений слов. Просто потом оказалось, что поиск именно по началу слова довольно удачно можно впилить без особых изменений.
Аватара пользователя
BUzer
BUzer - предлагаю переименовать тему в "решение проблемы поиска". Самоочевидно, что основной поиск - уже

Аватара пользователя
NTFS
Пути его неисповедимы. Предлагаю ничего не переименовывать и подождать ещё лет 60. Who knows? Не каркай.
Аватара пользователя
Mokuri Pies
Какая жесть. Обнаружил вчера, что сервис не работает. Точнее, он работает, но доступа к нему снаружи нет — всё выглядит так, как будто Ростелеком просто не пускает входящие соединения на порт 80. Написал в техподдержку, а они мне говорят…

На Ваше обращение в службу поддержки Клиентов ПАО «Ростелеком» сообщаем, что в целях безопасности клиентов ПАО Ростелеком порты (номера портов из обращения) на стороне клиента закрыты снаружи. Ограничение применяется для клиентов, подключённых по технологии PPPoE. Для гарантированной работоспособности портов/сервисов рекомендуем одно из решений:

1. Использовать альтернативные порты для предоставления доступа к сервисам.

2. Перенести сервисы на площадки, предоставляющие услуги хостинга (например, nic.ru).

Надо было ещё добавить пункт 3: "использовать услуги другого провайдера". Чем я вскоре и собираюсь воспользоваться, но пока что в качестве временного решения добавил порт 8080. Т.е. сейчас сервис доступен по ссылке http://impancake.net:8080/ep
update: нашёл другое решение, всё снова работает через 80 (см. следующий пост, кому любопытно).


NTFS писал(а):BUzer - предлагаю переименовать тему в "решение проблемы поиска".

Да не, не надо. Название темы — это же о том, как оно позиционируется, а не о том, как оно на деле :)
Аватара пользователя
BUzer
Хех, проблема решилась быстрее, чем я думал.
Оказывается, Cloudflare в прошлом году выкатили новую фичу: Cloudflare Warp. Это тулза, которая ставится на твой сервер, и с него открывает исходящий шифрованный канал до серверов Cloudflare (примерно как VPN). Когда юзер стучится на твой сайт, он обращается к Cloudflare, который, в свою очередь, забирает страницу у тебя с сервера по этому каналу. Прелесть в том, что это позволяет хостить сайт на любом компьютере, у которого есть доступ в интернет — не обязательно пробрасывать порты, и даже белый айпишник не нужен. Напоминает принцип работы tor hidden service.
Вообще, технология давно напрашивалась, я даже удивлён, что они не сделали её раньше. Единственная беда с ней — это то, что её обещают когда-нибудь сделать платной. Но к тому моменту я уже обзаведусь другим провайдером.

update: ух ты, порт опять открыт… Одумались что ли в Ростелекоме?
А Warp тем временем так себе решением оказался. Эта их тулза постоянно рвет соединения, и выключается.
Аватара пользователя
BUzer
Тут у меня проблема с девайсом возникла, на котором работал сервер. Вчера отключали свет, и после этого девайс перестал загружаться. Не знаю ещё, сколько я с ним буду разбираться, поэтому сайтец пока что полежит, увы.
Аватара пользователя
BUzer
Не везёт на поиски понячим сайтам)

Очень жаль, крайне удобный сайтец. Поправляй его сокрей, если вы не против, конечно.
Аватара пользователя
4hoof
  • Кто сейчас на конференции

    Сейчас этот форум просматривают: нет зарегистрированных пользователей