поиск

Автор 8244, 11 Окт. 2015 в 08:55

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

8244

Нынешний поиск практически не работоспособен.
Предлагаю его вообще убрать с глаз долой, чтобы не злить людей.


Что я предлагаю.

Давайте будем делать помаленьку нормальный поисковой движок. Начнём с одной простой функции (например, выбор всех сообщений в данном разделе от данного пользователя) - но только сделаем так, чтобы это действительно работало. Успешно реализовав старт-ап, будем расширять обвязку, добавим выборки по "спасибо" и "+карма", а дальше новые задачи будут уже сами вытекать по логике работы. Но даже выборка по человеку в теме/подразделе/разделе принесёт колоссальную пользу человеку ищущему знания, потому что знания, как правило, несут всего несколько человек, а доп. фильтр по теме (по теме! тема должна быть нижним уровнем фильра - не раздел, а тема, потому что именно тема - смысловая единица форума) сделает такой поиск, на мой взгляд, достаточным в 90% случаев.

Я могу заняться этой работой (уровень начинающего), если кто-то возьмётся меня консультировать по техническим вопросам работы сайта. Нынешний поиск это отдельная форма, труда не составит её переписать.

Технические вопросы можно обсуждать здесь же.

С ув.




chelo_vert

Поддерживаю.. текущий поиск малополезен.
Часто, при вводе даже самого обыкновенного запроса из пары слов он пишет что "Запрос не слишком информативен", да ещё и ждать предлагает 30 секунд до следующего запроса.  :facepalm:
Когда мне нужно что то поискать - приходится юзать гугл...  а-ля "бла-бла-бла site:electrotransport.ru"
Это, конечно, решает проблему... но..  тогда для чего вообще существует поиск по форуму?
Это особенно удручает в свете того что каждый более менее знающий обитатель, хоть раз, но отправлял новичка "в поиск".

КМК, отчасти поэтому многие новички не шерстят поиском нужную инфу, а создают 100500-ю тему "помогите срочно!!!!!"
Большой зеленый самокат.

8244


Как устроена база данных форума? [user]zap[/user] сетует, что размер БД около гигабайта, поэтому полнотекстовый поиск на несколько минут завешивает сервер. Неужели весь форум у вас сделан в виде одной таблицы? Если бы каждый подраздел форума работал со своей отдельной таблицей, поиск бы летал.


Jeca


8244

[user]Jeca[/user], это я видел. И что? 58 результатов на выходе независимо от зоны поиска, при том что поиск по юзеру выдаёт также ответы с упоминанием его имени. А опции "по спасибо" вообще нет. Не может работать с подстановочными знаками (* в поле "искать" выдаёт исключение, поиск в теме по идентификатору выдаёт "ничего не найдено", и т.д)

Это бесполезная фича.

Jeca

Цитата: 8244 от 11 Окт. 2015 в 15:54
А опции "по спасибо" вообще нет.

В профиле пользователя.

илс

Поиск по Гуглу - очень неплох.  :exactly:

Лично меня огорчает только одна вещь. Я настроил форум так, чтобы последние сообщения были первыми.

В результате все ссылки на поисковые запросы, становятся некорректными. Т.е. для меня поиск  - не существует и не работает, принципе  :~-(

А вы из-за пустяков переживаете.  :kidding:

8244

#7
Jeca,я не понимаю, о чём мы спорим??
А по "спасибо" от всех пользователей в данной теме?
А по "спасибо" данного пользователя в указанном разделе?
Мне на каждый ваш комментарий приводить возражения?

Вы хотите меня убедить что как есть это нормально? и не надо ничего делать?
Не убедите.
Прошу, не засоряйте тему.

Jeca

[user]8244[/user], это как, вам приспичило, а мы довай трудится програму переписывать?
Тогда тема не о чём.

8244


Я где-то сказал "вы давай трудиться" ??

DIVAS

Цитата: Jeca от 12 Окт. 2015 в 15:55
[user]8244[/user], это как, вам приспичило, а мы довай трудится програму переписывать?
Тогда тема не о чём.
Да вообще-то поиск действительно излишне туповат.
Я конечно с этим смирился, у меня все полезные темы давно висят в закладках и там по тегам находятся быстро.
Но ведь мы постоянно посылаем новичков в поиск, а поиск-то и не работает толком!
Kugoo M4 Pro 18Ah (2020)

zap

Поиск по гуглу вполне нормально работает. Я влёт нахожу всё что мне нужно по ключевым словам.

Что касается доработки поиска - вперёд и с песней. Для этого нужно совсем немного:

  • Установите себе движок форума SMF (ссылка есть в подвале)
  • Пишите собственный плагин для форума сколько влезет
  • Как только плагин готов, сигнализируете мне, я гляну и если всё устраивает - установлю

Это уже отработанная схема - например, коллега [user]bolonia[/user] разработал офигенную карту, а коллега [user]master_255[/user] - офигенный плагин для загрузки изображений.

Если напишете плагин офигенного поиска, будет Вам честь и слава. Не напишете - ничего не будет :pardon:.

Как-то так.

P.S. Вообще, ребята, которые делают SMF, пилят нормальный поиск уже хрен знает который год. Очень это, знаете ли, непростое дело. Я тоже уже джва года хочу такую игру, чтобы можно было грабить корованы. Но нету  :ку:
С уважением,
Андрей

Поражаю масштабностью некопмпетентность (ц) из лички

8244

1. Для чего плагин? Гораздо проще переписать форму поиска и сделать изолированную заплатку для её обработки, не трогая остальные элементы интерфейса

2. Повторю вопрос, который задал выше: у вас весь форум, что-ли, запихан в одну гигабайтную таблицу что так тормозит? Я не понимаю, откуда такие тормоза как вы говорите.

3. Здесь, на форуме, вы знаете людей кто нормально разобрался с движком?


zap

Плагин это и есть заплатка. Внутри архива кладётся нечто типа diff файла (только в своём собственном формате, надо вручную составлять) - типа в таком-то файле после вот такой строки вставляем текст [...] и так далее.
При необходимости, можно добавить дополнительные файлы, распихав их по каталогам движка.
Смысл делать плагины в том, что при обновлении движка форума мне на порядки проще работать с отдельными плагинами, которые можно накатывать-откатывать по необходимости, чем с просто пропатченными исходниками.

Список таблиц и их текущие размеры в мегабайтах под спойлером (это только файлы с данными таблиц, файлы с индексами ещё +30% по размеру).
Спойлер

0   frei_banned_users.MYD
1   frei_chat.MYD
1   frei_config.MYD
0   frei_groupchat.MYD
1   frei_rooms.MYD
6   frei_session.MYD
1   frei_smileys.MYD
0   frei_video_session.MYD
0   frei_webrtc.MYD
26   net_city_ip.MYD
4   net_city.MYD
2   net_country_ip.MYD
1   net_country.MYD
3   net_euro.MYD
1   net_ru.MYD
1   smf_admin_info_files.MYD
1   smf_ads.MYD
0   smf_ads_settings.MYD
0   smf_approval_queue.MYD
9   smf_attachments.MYD
1   smf_awards_categories.MYD
1   smf_awards_members.MYD
1   smf_awards.MYD
1   smf_ban_groups.MYD
1   smf_ban_items.MYD
1   smf_board_permissions.MYD
1   smf_boards.MYD
1   smf_calendar_holidays.MYD
1   smf_calendar.MYD
1   smf_categories.MYD
1   smf_collapsed_categories.MYD
1   smf_custom_fields.MYD
1   smf_down_cat.MYD
1   smf_down_catperm.MYD
1   smf_down_comment.MYD
0   smf_down_creport.MYD
0   smf_down_custom_field_data.MYD
0   smf_down_custom_field.MYD
1   smf_down_file.MYD
0   smf_down_groupquota.MYD
1   smf_down_rating.MYD
1   smf_down_report.MYD
1   smf_down_userquota.MYD
1   smf_drafts.MYD
0   smf_gallery_cat.MYD
0   smf_gallery_comment.MYD
0   smf_gallery_pic.MYD
0   smf_gallery_report.MYD
0   smf_group_moderators.MYD
1   smf_ignore_topics.MYD
2   smf_imgup.MYD
3   smf_log_actions.MYD
1   smf_log_activity.MYD
1   smf_log_banned.MYD
2   smf_log_boards.MYD
1   smf_log_comments.MYD
1   smf_log_digest.MYD
0   smf_log_errors.MYD
1   smf_log_floodcontrol.MYD
0   smf_log_group_requests.MYD
2   smf_log_karma.MYD
1   smf_log_mark_read.MYD
0   smf_log_member_notices.MYD
1   smf_log_notify.MYD
1   smf_log_online.MYD
1   smf_log_packages.MYD
1   smf_log_polls.MYD
1   smf_log_reported_comments.MYD
1   smf_log_reported.MYD
1   smf_log_scheduled_tasks.MYD
1   smf_log_search_messages.MYD
1   smf_log_search_results.MYD
2   smf_log_search_subjects.MYD
1   smf_log_search_topics.MYD
0   smf_log_spider_hits.MYD
0   smf_log_spider_stats.MYD
0   smf_log_subscribed.MYD
25   smf_log_topics.MYD
0   smf_mail_queue.MYD
1   smf_membergroups.MYD
5   smf_members.MYD
1   smf_message_icons.MYD
541   smf_messages.MYD
1   smf_moderators.MYD
0   smf_openid_assoc.MYD
1   smf_package_servers.MYD
1   smf_permission_profiles.MYD
1   smf_permissions.MYD
154   smf_personal_messages.MYD
6   smf_pm_recipients.MYD
1   smf_pm_rules.MYD
1   smf_poll_choices.MYD
1   smf_polls.MYD
1   smf_post_drafts.MYD
1   smf_pretty_topic_urls.MYD
1   smf_pretty_urls_cache.MYD
1   smf_scheduled_tasks.MYD
7   smf_sessions.MYD
1   smf_settings.MYD
1   smf_smileys.MYD
1   smf_spiders.MYD
0   smf_subscriptions.MYD
2   smf_thank_you_post.MYD
1   smf_themes.MYD
1   smf_topics.MYD

Собственно, таблица smf_messages содержит все сообщения на форуме, индексируемые по номеру сообщения.
Вот по этой таблице, собственно, и нужно делать поиск, попутно привлекая данные из других таблиц.
С движком разобрался, например, я, или тот же [user]master_255[/user], да и [user]bolonia[/user] разобрался бы если нужно (для карты этого не требовалось).
С уважением,
Андрей

Поражаю масштабностью некопмпетентность (ц) из лички

bolonia

Какая-то бесполезная узкоспециализированная фича обсуждается.

Zap, ты путаешь плагины и патчи. Плагины работают через прослойку - API. И архитектура вся строится так, чтобы API для плагинов поддерживался от версии к версии с обратной совместимостью. Если, как ты пишешь, менять содержимое файлов по diff'ам, то это хаки и не приветствуется в среде программистов, только как радикальное временное решение. При обновлении с хаками очень часто возникают проблемы.

8244, обращайтесь на форум SMF, этими доработками должны заниматься программисты движка форума: http://www.simplemachines.org/community/index.php
Рама «Версия» лайт + МК 1квт + 48v-40ah + KLS7212S
Xiaomi Mijia Electric Scooter
Я на карте

zap

[user]bolonia[/user], ну, я говорю как есть а не как должно быть :)
То, что плагины к SMF очень часто содержат хаки - клинический факт :bn:.
У SMF просто недостаточно "точек входа", чтобы можно было реализовать всё, что взбредёт в голову.
Но в любом случае, такие патчи накатывать и откактывать проще, чем вручную сделанные изменения.
Куда его пошлют программисты движка форума я догадываюсь, но говорить не буду :)
С уважением,
Андрей

Поражаю масштабностью некопмпетентность (ц) из лички

danclax

Не надо изобретать велосипед сложные полнотекстовые поисковые алгоритмы. Раз гугл всех устраивает, то вот https://cse.google.com/cse/create/new. Посмотреть на примере, насколько офигительно это работает, можно здесь: http://doc.qt.io/
Возможность стилизовать есть. Даже подсказки есть на лету, при наборе запроса.
E-Kross, MXUS 3000W V2, 48V 30Ah LiFePO4

zap

Человек хочет иметь возможность использовать для поиска дополнительную метаинформацию из базы форума, такие как карму, спасибы и так далее. Гугл этого не умеет. Хотя проблемы илса с обратной сортировкой оно, возможно, могло бы решить (надо только переиначивать гугловские ссылки).
С уважением,
Андрей

Поражаю масштабностью некопмпетентность (ц) из лички

илс

[user]zap[/user], А как их переиначивать?

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

Худо-бедно работает.  :exactly:

8244

#19
Значит так.

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

Кстати, люди знающие, скажите где почитать сравнительный анализ работы поискового механизма базы MySQL и движка, на котором работает, скажем, Google. Последний обрабатывает несопоставимо больший объём текста, за несопоставимо меньшее время. В чём дело? Я совершенно не представляю как это работает!..

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

Такой поиск будет летать!

имеем: (- поле [контекст])
- спасибо [сообщение] (уже есть, отдельная таблица)
- карма [тема],[юзер] (уже есть, отдельная таблица?)
- заголовок [тема] (уже есть, отдельная таблица)

полезно добавить:
- теги [сообщение] (сделать, отдельную таблицу)

Тогда поисковая форма будет такая:

Выбрать сообщения:
- с тегами [список]
- со словами в заголовке [список]
- размером не меньше, символов [число]
- в разделах [список]
- в темах [список] 
- за период, от [меню дат] до [меню дат]
- от юзеров [список]
- от юзеров с "уважаю", не менее [число]
- от юзеров со "спасибо" не менее [число]
- со "спасибо" не меньше [число]
- с "неприязнь", неболее [число]

Оформить результаты:
- отображать, строк [число]
- упорядочить по:
- дате [галка]
- пользователю [галка]
- количеству "спасибо" [галка]
- теме [галка]

...

Ну и т.д.

Вы представляете, какая это мощь!

Например, я хочу все концептуальные сообщения Сороки в теме "Свинцовые аккумуляторы". Чтобы задал один запрос, и получил выдачу, которую можно нормально ЧИТАТЬ. Как это сделать сейчас? Никак!
А здесь я говорю:

- от пользователя: Alex_soroka
- в темах: "СА - правда и вымыслы" "эксплуатация СА:вопросы и ответы"
- размером не меньше, символов: 1000
- сгруппировать: по темам
- упорядочить:
   по дате: от старых к новым
- отображать, строк: не ограничено

и я получаю практически готовую монографию, вполне логично изложенную, в которой сохраняется смысловая последовательность изложения - и я могу сохранить себе эту выдачу на диск и читать время от времени! Это же просто сказка!