@Neversmille

Как исключить несуществующие страницы в mediawiki?

День добрый. Юзаю для поиска по вики sphinx, но это по сути не так важно. Запрос на построение индекса выглядит следующим образом:
sql_query	= SELECT page_id, page_len, page_title, page_namespace, page_is_redirect, old_id, old_text, 'wiki' AS source FROM page, revision, text
 WHERE rev_id=page_latest AND old_id=rev_text_id AND page_is_redirect = 0 AND page_len>0 
 AND rev_len>0

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

Перечитал кучу всего на медиавики, пытался найти какието весомые различия выбрав id существующей страницы и не существующей страницы - ничего не нашел. Понять логику загрузки страниц по коду не пытался - пожалел себя... Как решить данную проблему? В идеальном варианте если можно - то киньте запрос который вытащит только существующие страницы.
  • Вопрос задан
  • 184 просмотра
Решения вопроса 1
@Neversmille Автор вопроса
Решение проблемы - добавление к ссылкам, формируемым по результатам поиска, строковых названий соответствующих page_namespace из таблицы page.
Т.е. Category: , Special: и т.д.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект