2

我的 Lucene 搜索扩展 ( http://www.mediawiki.org/wiki/Extension_talk:Lucene-search ) 与我的 mediawiki 安装集成。这一切都运行得非常好,但是 - lucene 似乎也索引了所有 mediawiki /html 标记,并且它显示在结果中。

即搜索“绿色”将返回带有标记的结果,例如 style="background:green; color:white

有没有办法去除所有标记的搜索结果?我相信维基百科使用相同的搜索插件,他们是怎么做的?

4

2 回答 2

2

在使用 Lucene 对其进行索引之前,您可能必须转换原始 wiki 标记。在处理纯 XML 内容时,可以只使用 XSL 转换<xsl:value-of select="text()"/>来提取文本内容。

恐怕这不适用于 wiki 标记,但也许您可以捕获页面后 HTML 转换?

于 2009-04-23T12:15:40.050 回答
0

我找到了部分问题的解决方案。以下更改将从搜索结果中删除 HTML 标记。我还不能删除 Wikitext 标记。对此的任何提示将不胜感激。请注意,我不使用 Lucene 搜索扩展。

  • 打开 /includes/search/SearchEngine.php
  • 在该文件中,定义了一个类 - SearchResult
  • SearchResult.getTextSnippet() 包含格式化搜索结果的代码
  • SearchResult->mText 包含来自搜索结果的文本简介 要解决此问题,只需进入 SearchEngine.php 并找到名为 getTextSnippet() 的方法,然后在“if”之前添加以下行:

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

我在这个随机 Wiki 上找到了这个解决方案:http ://www.myrandomwiki.com/wiki/MediaWiki_Notes#Strip_HTML_From_Search_Results

于 2013-11-15T01:42:32.020 回答