我正在构建一个应用程序,希望将维基词汇和定义用作数据源。在我的查询中,我希望能够在标题或定义中搜索与用户提供的术语类似的所有维基词条,但也包含以指定后缀(或一组后缀之一)结尾的标题)。
例如,我想找到包含单词"大狗"的所有维基词条,如下所示: https://en.wiktionary.org/w/api.php?action=query&list=search&srsearch=large%20dog
但是进一步过滤结果只包含标题以" d"结尾的条目。所以在那个例子中," boarhound"," Saint Bernard","释放"将被退回。
这可以通过MediaWiki搜索API实现吗?你有什么建议吗?
答案 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