Wiktionary / MediaWiki搜索&后缀过滤

时间:2015-04-18 21:47:54

标签: elasticsearch lucene mediawiki mediawiki-api wiktionary

我正在构建一个应用程序,希望将维基词汇和定义用作数据源。在我的查询中,我希望能够在标题或定义中搜索与用户提供的术语类似的所有维基词条,但也包含以指定后缀(或一组后缀之一)结尾的标题)。

例如,我想找到包含单词"大狗"的所有维基词条,如下所示: https://en.wiktionary.org/w/api.php?action=query&list=search&srsearch=large%20dog

但是进一步过滤结果只包含标题以" d"结尾的条目。所以在那个例子中," boarhound"," Saint Bernard","释放"将被退回。

这可以通过MediaWiki搜索API实现吗?你有什么建议吗?

1 个答案:

答案 0 :(得分:1)

这主要是使用ElasticSearch / CirrusSearch,但disabled for performance reasons。您仍然可以在您的维基上使用它,或attempt smart search queries

通常对于维基词典,我使用yanker,它可以访问数据库的页面表。你的例子(单字母后缀)会很大,但例如.*hound$找到:

Afghan_hound Bavarian_mountain_hound Foxhound Irish_Wolfhound Mahound Otterhound Russian_Wolfhound Scottish_Deerhound Tripehound basset_hound bearhound black_horehound bloodhound boarhound bookhound boozehound buckhound chowhound coon_hound coonhound covert-hound covert_hound coverthound deerhound double-nosed_andean_tiger_hound elkhound foxhound gazehound gorehound grayhound greyhound harehound heckhound hell-hound hell_hound hellhound hoarhound horehound hound limehound lyam-hound minkhound newshound nursehound otterhound powder_hound powderhound publicity-hound publicity_hound rock_hound rockhound scent_hound scenthound shag-hound sighthound sleuth-hound sleuthhound slot-hound slowhound sluthhound smooth_hound smoothhound smuthound staghound war_hound whorehound wolfhound