Mediawiki + Lucene: как убрать разметку? - PullRequest
2 голосов
/ 22 апреля 2009

У меня есть поисковое расширение Lucene (http://www.mediawiki.org/wiki/Extension_talk:Lucene-search), интегрированное с моей установкой mediawiki. Все работает очень хорошо, однако, похоже, что lucene проиндексировал всю разметку mediawiki / html, и он отображается в результаты.

т.е. поиск "green" вернет результаты с разметкой, такой как, style = "background: green; color: white

Есть ли способ убрать результаты поиска всей разметки? Я считаю, что в Википедии используется тот же поисковый плагин, как они это делают?

Ответы [ 2 ]

2 голосов
/ 23 апреля 2009

Вам, вероятно, придется преобразовать необработанную вики-разметку, прежде чем индексировать ее с помощью Lucene. При работе с чистым XML-контентом можно просто использовать XSL-преобразование с <xsl:value-of select="text()"/> для извлечения текстового содержимого.

Боюсь, что это не сработает для разметки вики, но, может быть, вы можете захватить преобразование страницы после HTML?

0 голосов
/ 15 ноября 2013

Я нашел решение части проблемы. Следующее изменение удалит HTML-разметку из результатов поиска. Я еще не смог удалить разметку Wikitext. Любые советы по этому вопросу будут оценены. Обратите внимание, что я не использую расширение поиска Lucene.

  • Открыть /include/search/SearchEngine.php
  • В этом файле определен класс - SearchResult
  • SearchResult.getTextSnippet () содержит код для форматирования результатов поиска
  • SearchResult-> mText содержит текстовый всплеск из результатов поиска Чтобы решить эту проблему, просто зайдите в SearchEngine.php и найдите метод getTextSnippet (), а затем добавьте следующую строку перед «if»:

$ this-> mText = strip_tags ($ this-> mText);

Я нашел это решение на этой случайной вики: http://www.myrandomwiki.com/wiki/MediaWiki_Notes#Strip_HTML_From_Search_Results

...