2013-04-04 35 views
1

我一直在尝试根据位置筛选建议,但不成功。 我想显示所有地点,城市,城镇,国家的村庄:印度如何根据Freebase中的位置进行过滤?

我应该对下面的代码做些什么改变?

<script type="text/javascript"> 
$("#myinput") 
    .suggest({ 
    "key": "my key", 
    filter: '(any type:/location/location)' 

    }) 
.bind("fb-select", function(e, data) { 
    alert(data.name + ", " + data.id + " (" + data['n:type'].name + ")"); 
}); 
     </script> 

回答

1

与搜索过滤器来做到这一点的方法是使用part_ofMetaschema predicate这样的:

<script type="text/javascript"> 
$("#myinput") 
    .suggest({ 
    "key": "my key", 
    filter: '(all type:/location/location part_of:/m/03rk0)' 

    }) 
.bind("fb-select", function(e, data) { 
    alert(data.name + ", " + data.id + " (" + data['n:type'].name + ")"); 
}); 
</script> 

part_of Metaschema谓词传递,这意味着它Freebase主题是part_of印度匹配(/m/03rk0)或part_of的位置是part_of印度等

+0

实际上在应用part_of之后并未显示局部区域名称示例“vasant kunj”,但它没有显示part_of ....如何使这部分可用于建议(例如“vasant kunj或vasant vihar”)? – user2216267 2013-04-04 22:44:23

+0

这是因为在Freebase中没有任何财产值来表示Vasant Kunj是印度的一部分。我刚刚添加了一个/位置/位置/ containedby属性,表示Vasant Kunj是西南德里的一部分(/ m/027drhq)。已经有事实说明德里南德里被德里和德里所包含,印度所包含,所以现在路径是完整的。在一小时内再次尝试您的代码,然后搜索索引应该被更新。如果您发现其他缺失的关系,请随时将它们添加到Freebase。 – 2013-04-04 23:12:19

+0

实际上我想提出一个印度这些地区(成千上万)的建议清单(德里现在也会工作),但他们缺少。是否有任何方式或以上汤姆莫里斯提到或使用“显着类型:/位置/ citytown”或任何其他获得建议列表(城市+乡村+城镇+地区)的所有这些领域? – user2216267 2013-04-04 23:24:52

1

肖恩的方法将工作的主题有遏制属性es设置正确,但我不确定覆盖率有多好。我怀疑简单的地理数据(纬度/经度)覆盖率更好。如果你只想在距离过滤来自印度的心,你可以这样做:

filter=(all type:/location/location (within radius:500km+lon:82.7948 lat:21.7866)) 

https://www.googleapis.com/freebase/v1/search?indent=true&filter=%28all+type%3A/location/location+%28within+radius%3A500km+lon%3A82.7948+lat%3A21.7866%29%29&output=%28geocode%29

注意,这是非常粗略地记录在案,我不知道这是否意味着它的品牌新的和文档没有完成或不赞成并即将消失。

+0

不工作,如何准确写入? – user2216267 2013-04-04 23:53:06

相关问题