在维基百科上执行模糊搜索

Perform Fuzzy Search on Wikipedia

我正在尝试从维基百科检索作者阿加莎克里斯蒂的页面,利用其 API。维基百科似乎很好地完成了这项工作:

来自https://en.wikipedia.org/wiki/Main_Page 我搜索阿加莎克里斯蒂,我找到了她。

根据 API 这似乎是不可能的。因为我可以尝试从 API 搜索沙盒构建我的查询:

https://en.wikipedia.org/wiki/Special:ApiSandbox#action=query&list=search&srsearch=Agatha%20Christie&utf8=

我找到了一个乐队,阿加莎克里斯蒂纪念馆,一些书,没有关于她的其他信息。我不明白原因。有了阿尔伯特·爱因斯坦,查询就可以了。

当然搜索 API returns 所有匹配的页面,那么我的任务就是细化搜索,但为什么在这种情况下没有有用的结果?

你只是误读了结果。第一个结果是正确的。 https://en.wikipedia.org/wiki/Special:ApiSandbox#action=query&list=search&format=json&srsearch=Agatha%20Christie&srprop=timestamp :

        {
            "ns": 0,
            "title": "Agatha Christie",
            "timestamp": "2015-07-06T19:37:15Z"
        },

访问该标题:https://en.wikipedia.org/wiki/Agatha_Christie。这是正确的页面。该片段错误地提取了顶部的消歧信息,«关于乐队,请参见阿加莎·克里斯蒂 (乐队)。对于视频游戏系列,请参阅阿加莎克里斯蒂(视频游戏系列)»,但这只是一个片段。

有关各种搜索 API 的概述,包括允许模糊搜索的 API(通过 CirrusSearch),请参阅 https://www.mediawiki.org/wiki/API:Search_and_discovery