我想基本上将自己的搜索栏构建到维基百科的api中。给定用户输入的字符串,它应返回维基百科页面中与该搜索字符串最匹配的第一部分。
如果输入的标题恰好是正确的页面,它可以正常工作,但如果有拼写错误或相似的情况,它会返回一个没有内容的xml文件。
一个例子是寻找土木工程的页面。 (http://en.wikipedia.org/wiki/Civil_engineering)
如果我在维基百科上搜索土木工程,我发现没问题。如果我用我的网址搜索它,同样的事情:http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&rvsection=0&titles=civil+engineering&format=xml
然后,如果我将我的搜索字符串输错到,例如" civul engineering"在维基百科上,它说"没有页面匹配 - 你是说'土木工程&#39 ;? "我可以点击进入正确的页面。 (http://en.wikipedia.org/w/index.php?search=civul+engineering&title=Special%3ASearch&go=Go)
但是,如果我在查询网址中犯了同样的错误,它会返回以下xml:
<api>
<query>
<normalized>
<n from="civul engineering" to="Civul engineering"/>
</normalized>
<pages>
<page ns="0" title="Civul engineering" missing=""/>
</pages>
</query>
</api>
没有建议的重定向或任何内容。如何提取最接近的结果而不仅仅是与字符串完全匹配的结果?