初学者关于freebase的问题:
我正在寻找名为“O”的电影的imdb id。如果我使用freebase.com网站上的搜索框并将搜索类型限制为all:/film/film
,那么我会获得高质量的结果,并且最佳匹配位于顶部:
http://www.freebase.com/search?query=o&lang=en&all=%2Ffilm%2Ffilm&scoring=entity&prefixed=true
但这不包括imdb id。当我尝试使用查询编辑器重新创建和优化此搜索时,我无法弄清楚如何执行“常规查询”。我能想到的最好的就是做一个像这样的模糊名称搜索:
[{
"type": "/film/film",
"name": null,
"name~=": "o",
"imdb_id": [],
"rottentomatoes_id": []
}]
结果中包含了我想要的信息,但是电影“O”只是列表中的第12个结果,埋没在很多废话中:
如何提高结果质量? “{query = o”使用"name~=":"o"
没有的特殊魔法是什么?
答案 0 :(得分:2)
当您使用query=o
时,freebase会对结果进行一些智能排序,首先显示完全匹配,然后是不太精确的匹配。
使用您的查询name ~= o
,您不会搜索名称为“O”的电影,而是搜索名称中包含“O”的电影(~=
运算符)。如果要搜索特定的电影标题,请指定确切的名称:
[{
"type": "/film/film",
"name": "o",
"imdb_id": [],
"rottentomatoes_id": []
}]
这将导致输出:
{
"result": [{
"imdb_id": [
"tt0184791"
],
"name": "O",
"type": "/film/film",
"rottentomatoes_id": [
"o"
]
}]
}
答案 1 :(得分:0)
如果Search为您提供了您想要的主题,为什么不使用output
parameter将IMDB ID(或您想要的任何其他内容)添加到您请求它返回的输出中?