我有一个查询,我想返回给定国家/地区的所有城市。
这工作得很好,除了我还想调整一下,以便按大小或任何重要性顺序对其进行排序,以避免 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(使用前将#替换为@)