powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Поиск в сообщениях пользователей запрещенных слов
9 сообщений из 9, страница 1 из 1
Поиск в сообщениях пользователей запрещенных слов
    #39853664
Dmitry100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всех приветствую! Друзья, помогите с запросом на поиск упоминания запрещенных слов в табличке сообщений для пользователей. Условие: слова должны в поле text таблицы user_messages должны быть разделены разделителями слов.
Моя попытка через регулярку:

Код: sql
1.
select * from users_messages where text regexp (select CONCAT('/\\b(', GROUP_CONCAT(value SEPARATOR ')\\b|\\b('), ')\\b/g') from black_list where type = 'word');



Не работает.
1) Подзапрос строит корректное регулярное выражение, если проверять на сайте regextester. Но, на том же regextester под регулярку попадают только слова из латинский букв. Нужна также кириллица.
2) Сам запрос почему-то не находит даже упоминания даже слов из латинских букв, несмотря на то, что regextester говорит что регулярка нормальная.
...
Рейтинг: 0 / 0
Поиск в сообщениях пользователей запрещенных слов
    #39853680
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создайте fiddle с десятком фраз и несколькими стоп-словами. Поиграемся...

И укажите точную версию сервера.
...
Рейтинг: 0 / 0
Поиск в сообщениях пользователей запрещенных слов
    #39853753
Dmitry100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Поиск в сообщениях пользователей запрещенных слов
    #39853911
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Какая версия сервера У ВАС?
2) Каким должен быть эталонный ответ?
...
Рейтинг: 0 / 0
Поиск в сообщениях пользователей запрещенных слов
    #39855511
Dmitry100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
MySql 5.7

black_list - таблица - справочник запрещенных слов.

Целевой запрос должен содержать след выборку из таблицы users_messages:

(90267, 88132, 'Тестовое сообщение плохоеслово1', 1, '2019-07-19 16:51:46')
(90267, 88132, 'badword2 some message»', 1, '2019-07-19 16:51:46')

Запись (90267, 88132, 'Тестовое сообщение плохоеслово1лалала', 1, '2019-07-19 16:51:46') - не подходит т. к. "плохоеслово1" встречается как подстрока в другом слове
...
Рейтинг: 0 / 0
Поиск в сообщениях пользователей запрещенных слов
    #39855559
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Осталось прояснить, что есть "слово". Как я понимаю, это группа символов, ограниченная началом/концом строки либо разделяющим символом, и не содержащая разделяющих символов?
...
Рейтинг: 0 / 0
Поиск в сообщениях пользователей запрещенных слов
    #39855602
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
5.7 не хочет понимать \b.

Работает вот такая конструкция:

Код: sql
1.
2.
3.
4.
5.
6.
7.
select text
from users_messages,
(select CONCAT('(^|[[:space:]]|[[:punct:]])(', value, ')($|[[:space:]]|[[:punct:]])') p 
 from black_list 
 where type = 'word') p
 GROUP BY text
 HAVING MAX(text regexp p.p)
...
Рейтинг: 0 / 0
Поиск в сообщениях пользователей запрещенных слов
    #39855710
Dmitry100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, Спасибо большое! Запрос корректно работает. Но есть проблема - работает медленно. У меня таблица users_messages примерно 15000 записей + справочник плохих слов примерно 600 записей. Выполнение запроса уже 24 минуты идет и конца пока не видно. ЦПУ i5-7500. Что такое "Слово" Вы правильно поняли. Если не затруднит может еще вариант запроса попробуем.
...
Рейтинг: 0 / 0
Поиск в сообщениях пользователей запрещенных слов
    #39855783
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry100Выполнение запроса уже 24 минуты идет и конца пока не видно.Ну так... 9кк регов - это непросто...
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Поиск в сообщениях пользователей запрещенных слов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]