我正在开发基于维基媒体的wiki搜索引擎。
实际上,这是我的问题:
/external/wikiPublic/api.php?action=query&list=search&srsearch=".$search."&srprop=snippet&format=xml
效果很好,但结果非常糟糕。 例如,它返回如下的重定向:
<p ns="0" title="Imprimantes" snippet="#REDIRECTION [[<span class='searchmatch'>Imprimantes</span> Enseignement]] "/>
它尝试将参数&amp; redirects = 0添加到URL但它不起作用,它仍然显示这种结果。 正如您所看到的,它还将wikimedia语法放在代码段中。它有时很糟糕,就像这个:
<p ns="0" title="Wifi" snippet="== Le <span class='searchmatch'>Wifi</span> ici == [[Fichier:Wi-Fi_Logo.png|right|250px|Logo <span class='searchmatch'>Wifi</span>]] "/>
我还尝试将代码段更改为sectionsnippet但它不起作用,它在sectionsnippet XML属性中没有返回任何内容
那么,你知道如何解决这些问题吗?
答案 0 :(得分:1)
MediaWiki search API返回的代码段由搜索后端MediaWiki configured生成。
默认情况下,这是内置的数据库搜索,它确实返回未解析的片段。要获得更好的解析代码段,您需要安装自定义search extension,例如维基百科和其他维基媒体wiki使用的基于Lucene的MWSearch。
答案 1 :(得分:0)
您是否尝试过简单的file_get_contents
电话?
$phrase = 'World War';
$search = str_replace( ' ', '+', $phrase );
$search_string = 'http://en.wikipedia.org/wiki/Special:Search?go=Go&search=' . $search;
$result = file_get_contents( $search_string );
echo $result;
对我来说很好。