Freebase查询结果埋没在废话之下

时间:2013-12-09 22:07:04

标签: freebase

初学者关于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个结果,埋没在很多废话中:

http://www.freebase.com/query?lang=%2Flang%2Fen&q=[{%22type%22%3A%22%2Ffilm%2Ffilm%22%2C%22name%22%3Anull%2C%22name~%3D%22%3A%22o%22%2C%22imdb_id%22%3A[]%2C%22rottentomatoes_id%22%3A[]}]

如何提高结果质量? “{query = o”使用"name~=":"o"没有的特殊魔法是什么?

2 个答案:

答案 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(或您想要的任何其他内容)添加到您请求它返回的输出中?