Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Дефис в поисковых механизмах MySQL Fulltext и phpBB Native Fulltext

Проблемы с установкой или работой phpBB 3.3.x? Получите помощь здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
dimassamid
phpBB 2.0.0
Сообщения: 205
Стаж: 17 лет 5 месяцев
Благодарил (а): 58 раз
Поблагодарили: 84 раза

Дефис в поисковых механизмах MySQL Fulltext и phpBB Native Fulltext

Сообщение dimassamid »

Здравствуйте!

На форуме всегда использовался поисковый механизм MySQL Fulltext. Однако, в связи с тем, что он имеет ограничения на минимальное количество индексируемых символов (параметр ft_min_word_len глобальный и поменять его на виртуальном хостинге не представляется возможным), пришлось перевести конференцию на phpBB Native Fulltext, т.к. там более гибкие настройки.

После смены поискового механизма пользователи стали жаловаться на ухудшение работы поиска. Я поставил расширение Log Searches, чтобы посмотреть, как пользователи формулируют поисковый запрос. Оказалось, что многие используют дефис. К примеру, строка поиска выглядит так:
слово1 - слово2 слово3
И несмотря на то, что между дефисом и словом2 стоит пробел, phpBB Native Fulltext исключает его из поиска, что соответственно приводит к искажению результатов. По логике вещей, дефис, окружённый с двух сторон пробелами, должен игнорироваться. По этой логике работает MySQL Fulltext и любая поисковая система (Google, Yandex и т.д.). Для исключения какого-либо слова, пользователь должен поставить дефис вплотную.

Баг или фича? Мне очень хотелось бы, чтобы это было первым, и команда разработчиков исправила бы это в ближайшей версии. Я помню, что как-то давно, кажется, ещё в 3.0.x, была похожая проблема с дефисом. Если поисковый запрос содержал, например, e-mail, то mail исключался из поиска из-за дефиса. Это исправили.

Контент на форуме специфический, и заголовки тем действительно содержат дефисы, поэтому пользователи его и вводят. Народ сейчас стал очень избалован умными поисковыми системами, поэтому переучивать бессмысленно, тем более что раньше всё прекрасно работало. На форуме есть документация по поиску, все ознакомились, поблагодарили и благополучно забили забыли.

Подскажите, стоит ли вообще сообщать разработчикам об этом или это просто особенности поискового механизма? Буду рад, если кто-нибудь даст какие-то советы или предложит решения.

Спасибо!
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16367
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1744 раза

Re: Дефис в поисковых механизмах MySQL Fulltext и phpBB Native Fulltext

Сообщение rxu »

dimassamid, а для чего они вообще ставят дефис, если он все равно должен игнорироваться?
Изображение
dimassamid
phpBB 2.0.0
Сообщения: 205
Стаж: 17 лет 5 месяцев
Благодарил (а): 58 раз
Поблагодарили: 84 раза

Re: Дефис в поисковых механизмах MySQL Fulltext и phpBB Native Fulltext

Сообщение dimassamid »

rxu, как я и написал, в силу особенности контента, заголовки многих тем содержат дефис. Видимо, таким образом пользователи хотят найти точное совпадение.
Это что-то, своего рода, если искать, скажем, название песни. Все машинально будут вводить в гугл Исполнитель - Название, с дефисом :)
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16367
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1744 раза

Re: Дефис в поисковых механизмах MySQL Fulltext и phpBB Native Fulltext

Сообщение rxu »

Посмотрел на текущей версии, в нативном механизме запрос типа welcome - phpbb3 трактуется как welcome -phpbb3, результат поиска нулевой. Без пробелов вокруг дефиса или без дефиса с просто пробелом между словами находит оба слова.
В полнотекстовом механизме работает нормально. Надо смотреть в коде.
Изображение
dimassamid
phpBB 2.0.0
Сообщения: 205
Стаж: 17 лет 5 месяцев
Благодарил (а): 58 раз
Поблагодарили: 84 раза

Re: Дефис в поисковых механизмах MySQL Fulltext и phpBB Native Fulltext

Сообщение dimassamid »

rxu писал(а): 09.12.2021 17:45 результат поиска нулевой
Да, всё верно, так и есть. Получается, что баг?
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16367
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1744 раза

Re: Дефис в поисковых механизмах MySQL Fulltext и phpBB Native Fulltext

Сообщение rxu »

dimassamid писал(а): 09.12.2021 17:50 Получается, что баг?
Пока не готов сказать, возможно.
Насколько я понимаю, сам по себе запрос welcome -phpbb3 по фразе welcome phpbb3 и должен давать нулевой результат, но должен ли запрос welcome - phpbb3 трактоваться как welcome -phpbb3 - не уверен.

Siava писал(а): 09.12.2021 17:59 Похоже дефис влияет на выдачу
А зенит -чемпион?
Изображение
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5283
Стаж: 19 лет 3 месяца
Откуда: Питер
Благодарил (а): 186 раз
Поблагодарили: 793 раза

Re: Дефис в поисковых механизмах MySQL Fulltext и phpBB Native Fulltext

Сообщение Siava »

rxu, удалил свои ответы, всё нормально.
- работает почти как надо, исключает, но почему-то с пробелом после - тоже исключает.
+ тоже как надо.
Сорян, я сам себя запутал :D
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16367
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1744 раза

Re: Дефис в поисковых механизмах MySQL Fulltext и phpBB Native Fulltext

Сообщение rxu »

Siava, а если пробелы с двух сторон дефиса?
Изображение
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5283
Стаж: 19 лет 3 месяца
Откуда: Питер
Благодарил (а): 186 раз
Поблагодарили: 793 раза

Re: Дефис в поисковых механизмах MySQL Fulltext и phpBB Native Fulltext

Сообщение Siava »

rxu писал(а): 09.12.2021 18:27 а если пробелы с двух сторон дефиса?
Да..
Результаты поиска "зенит - чемпион" и "зенит -чемпион" одинаковые.
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16367
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1744 раза

Re: Дефис в поисковых механизмах MySQL Fulltext и phpBB Native Fulltext

Сообщение rxu »

Минус без пробела должен исключать сочетание слов.
Изображение
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5283
Стаж: 19 лет 3 месяца
Откуда: Питер
Благодарил (а): 186 раз
Поблагодарили: 793 раза

Re: Дефис в поисковых механизмах MySQL Fulltext и phpBB Native Fulltext

Сообщение Siava »

rxu, это да.. но с пробелом тоже исключает :?
Аналогично и плюс себя ведёт. С пробелом и без - одинаково включает.
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16367
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1744 раза

Re: Дефис в поисковых механизмах MySQL Fulltext и phpBB Native Fulltext

Сообщение rxu »

https://github.com/phpbb/phpbb/pull/6343
Не знаю, какое решение примут девелоперы в итоге.
Изображение

Вернуться в «Поддержка phpBB 3.3.x»