用于按城市相关性排序的 freebase api

2023-12-19

我有一个查询,我想返回给定国家/地区的所有城市。

这工作得很好,除了我还想调整一下,以便按大小或任何重要性顺序对其进行排序,以避免 100 的限制。我希望前 100 个城市中人们最有可能选择的城市首先列出。 (人口,或者?)

[{
  "/location/country/iso3166_1_alpha2": "US",
  "/location/location/contains":[
    "id" : null,
    "name" : null,
    "/location/statistical_region/population" : { "number" : null, "date" : null }
    "type" : "/location/citytown"
  ]
}]​

这可以工作,但非常慢,因为它必须计算所有包含的元素:

[{
  "/location/country/iso3166_1_alpha2": "US",
  "/location/location/contains":[
    "id" : null,
    "name" : null,
    "type" : "/location/citytown",
    "/location/location/contains":{"return": "count"}
    "sort": "-/location/location/contains.count"
  ]
}]​

我尝试过包括/location/statistical_region/population但运气不好,有什么想法吗?


您可以分两个阶段执行此操作。首先,您可以像上面那样使用 MQL 通过 ISO 代码查找国家/地区:

{
  "/location/country/iso3166_1_alpha2": "US",
  "mid":           null,
  "name":          null
}​

然后,一旦您知道该国家/地区的 MID,您就可以使用搜索 API 获取该国家/地区 100 个最相关城市的排名列表.

filter: (all type:/location/citytown part_of:/m/09c7w0)

这是使用搜索接口 https://developers.google.com/freebase/v1/search-overview过滤语法和特殊元模式 http://wiki.freebase.com/wiki/Search_Cookbook#Metaschema_constraints谓词查找包含在美国境内的实体 (/m/09c7w0)。这特别有用,因为搜索 API 知道 /location/location/contains 是一种传递属性,因此它将查看美国包含的任何实体,即使该包含在 Freebase 图中的深度超过一级。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于按城市相关性排序的 freebase api 的相关文章

随机推荐