LINUX.ORG.RU
решено ФорумAdmin

mediawiki + postgres: не индексируются новые страницы

 


0

1

Доброго времени суток

Сабж. Есть mediawiki под свои рабочие заметки. В последнее время иногда замечал, что поиск не находит информацию, которую я вроде бы добавлял. Сначала думал, что забыл добавить. Потом оказалось, поиск по заголовкам работает стабильно. А вот поиск по содержимому не видит новую информацию (примерно за последний год). Т.е. отвалилась индексация содержимого. Никаких сторонних движков для поиска не ставил, речь про штатную возможность mediawiki.

К сожалению, в качестве БД - postgres, поэтому штатные скрипты в пролёте: https://www.mediawiki.org/wiki/Manual:Searchindex_table

Похоже, что перестали отрабатывать какие-то хуки при сохранении страницы

пробовал

  • updateSearchIndex.php, rebuildtextindex.php - как и ожидалось, не работают с postgresql
  • rebuildrecentchanges.php - ничего не изменилось
  • в логах апача и mediawiki-jobrunner ошибок не нашёл
  • если перенести дамп на другую ВМ, новые страницы начинают индексироваться. но мне и старые тоже нужны :)
  • включил debug log. сыпятся «DBPerformace» предупреждения, но это вроде не критично: [DBPerformance] Expectation (writes <= 0) by MediaWiki::restInPeace not met (actual: 1):

update. это был баг mediawiki 66650. Дело в переименовании страниц. Поиск по тексту не работает в переименованных страницах. workaround - применить патч для 66650

★★★★★

Ответ на: комментарий от router

Да, это оно. Применение патча сразу восстановило поиск по всем страницам

mediawiki=> UPDATE /*_*/pagecontent SET textvector=to_tsvector(old_text)
mediawiki-> WHERE textvector IS NULL AND old_id IN
mediawiki-> (SELECT  max(rev_text_id) FROM revision GROUP BY rev_page);
UPDATE 432
router ★★★★★ ()
Последнее исправление: router (всего исправлений: 2)