Menu

Зачистка нерелевантных статей

Этот материал - шпаргалка для самого себя на будущее. Сегодня была решена интересная задача для одного огромного и серьёзного сайта на Joomla 3.10: удалены все материалы, содержащие упоминания карточных игр.

Пример запроса, который находит все материалы с упоминанием карточной игры MTG:

SELECT `id`, `title`, `alias`, `catid`, `state` 
FROM `blki_content`
WHERE `catid` = 19
  AND `state` = 1
  AND (
      LOWER(`title`) LIKE '%mtg%'
      OR LOWER(`title`) LIKE '%magic%gathering%'
      OR LOWER(`introtext`) LIKE '%tcg%'
      OR LOWER(`fulltext`) LIKE '%card game%'
  )
ORDER BY `id` DESC;

Затем все статьи были просмотрены в ручном режиме, чтобы не удалить что-то лишнее. Если статья была и правда про игру, она снималась с публикации.

Далее, был использован запрос на зачистку БД, при этом URL статьи специально оставили на будущее, чтобы случайно не продублировать "мусорную" статью. Вот запрос:

UPDATE `blki_content` 
SET
`introtext` = '',
`fulltext` = '',
`metadesc` = '', -- Очищаем мета-описание
`metakey` = '', -- Очищаем ключевые слова
`metadata` = '{}', -- Сбрасываем мета-данные JSON
`xreference` = '' -- Очищаем внешние ссылки (если не используются)
WHERE
`catid` = 19
AND `state` = 0; -- Только неопубликованные

 

Вот запрос для предварительного просмотра заголовков и мета-данных, которые будут очищены (это если хочется перепроверить):


SELECT
`id`,
`title`,
`alias`,
LEFT(`introtext`, 100) AS introtext_preview,
LEFT(`fulltext`, 100) AS fulltext_preview,
`metadesc`,
`metakey`
FROM
`blki_content`
WHERE
`catid` = 19
AND `state` = 0
LIMIT 50; -- Показать первые 50 записей для проверки

Оставить комментарий

Ваше мнение очень важно для нас! Обязательно выскажите Ваши мысли, пожелания и критику! Не стесняйтесь задавать вопросы. Скорее всего, ответ появится уже через 2-3 дня. Спасибо заранее.

Другие материалы в этой категории:

Go to top