我正在尝试使用Freebase查找指定公司的所有替代名称。我目前有以下代码,当您指定希望名称所在的语言时,它会起作用。我希望它返回所有别名,无论语言如何。但是,如果我不指定语言,则不返回任何结果。此外,如果我将查询中的所有语言都包含在一个长列表中,它将返回错误公司的结果。当我在下面的代码中执行此操作时,它返回了美国银行的结果。有没有办法指定所有语言?该代码的主要目的是找到公司的常见缩略词,尽管选择全名也是有用的。
HttpTransport httpTransport = new NetHttpTransport();
HttpRequestFactory requestFactory = httpTransport.createRequestFactory();
JSONParser parser = new JSONParser();
GenericUrl url = new GenericUrl("https://www.googleapis.com/freebase/v1/search");
url.put("query", "Royal Bank of Scotland");
url.put("filter", "(all type:/organization/organization )");
url.put("limit", "1");
url.put("output", "( /common/topic/alias )");
url.put("lang", "cs");//Specify Laungauges
url.put("key", properties.get("API_KEY"));
HttpRequest request = requestFactory.buildGetRequest(url);
HttpResponse httpResponse = request.execute();
JSONObject response = (JSONObject)parser.parse(httpResponse.parseAsString());
JSONArray results = (JSONArray)response.get("result");
System.out.println(results);
答案 0 :(得分:1)
lang
参数采用逗号分隔的语言列表。如果你真的想要所有,你可以使用当前的整个列表:
“EN,ES FR,DE,它,PT,ZH,JA,KO,RU,SV,音响,DA,NL,EL,RO,TR,胡,TH,PL,CS,ID,BG,英国,加拿大,欧盟,没有,SL,SK,小时,SR,AR,喜,VI,FA,GA,IW,LV,LT,GL,是,HY,LO,千米,SQ,FIL,ZXX“
来自https://www.googleapis.com/freebase/v1/search?help=langs&indent=true
上记录的https://developers.google.com/freebase/v1/search-cookbook#language-constraints此查询适用于我:
https://www.googleapis.com/freebase/v1/search?query= “皇家%20Bank%20of%20Scotland” &安培;过滤器=(所有%20type:/组织/组织%20)及限制= 1&安培;输出=(/普通/主题/别名%20 )及朗= EN,ES FR,DE,它,PT,ZH,JA,KO,RU,SV,音响,DA,NL,EL,RO,TR,胡,TH,PL,CS,ID,BG ,英国,加拿大,欧盟,没有,SL,SK,小时,SR,AR,喜,VI,FA,GA,IW,LV,LT,GL,是,HY,LO,千米,SQ,FIL,ZXX