【问题标题】:Google Knowledge Graph searching with ids使用 id 进行 Google 知识图谱搜索
【发布时间】:2018-03-16 12:32:58
【问题描述】:

我存储了一些谷歌知识图谱 API (GKGA) 的搜索结果 GKGA 以 id 的形式返回。

现在我想再次使用 id 获取整个结果,但这似乎不起作用。经过一番研究,我发现了一个可以从这里工作的查询: How to use Google Knowledge Graph API

我的请求有点不同,主要是id:

https://kgsearch.googleapis.com/v1/entities:search?callback=jQuery321016748583817510942_1521200076900&indent=true&key={MY_API_KEY}&ids=kg:/m/031sc&_=1521200076901

引用的工作请求是:

https://kgsearch.googleapis.com/v1/entities:search?ids=%2Fm%2F014nm_&key={API-KEY}

我可以看到的主要区别是 ID 不同:

我的是:

  • 我的是:kg:/m/031sc
  • 他是:kg:/m/014nm_ 但在 url 中是 %2Fm%2F014nm_

所以我尝试在 id 和整个 url 上使用 encodeURI,但没有任何区别。

那么问题来了:我需要对我的 id 做些什么才能获得 GKGA 的结果?

目前我这样实现我的请求:(如果您想知道我的请求 URL 中的 JQuery 部分)

let service_url = 'https://kgsearch.googleapis.com/v1/entities:search';
let requestParams = {
                'indent': true,
                'key': '{API-KEY}',
                "ids":"kg:/m/031sc"
            };
$.getJSON(service_url + '?callback=?', requestParams, (response) => {
}).done((response) => {
      console.log('Response is: ' + JSON.stringify(response));
});

【问题讨论】:

    标签: javascript jquery vue.js google-api google-knowledge-graph


    【解决方案1】:

    对我有用的解决方案是使用 ':' 之后的部分作为实际 ID。 这让下面的解决方案支持的不仅仅是 id:

        let service_url = 'https://kgsearch.googleapis.com/v1/entities:search';
        let dataurl = 'key={API-KEY}'; //just the key, not the moustaches '{','}'
        for (let i = 0; i < allIds.length; i++) {
            dataurl += '&ids='+ allIds[i].split(':')[1];
        }
        $.getJSON(service_url + '?callback=?', dataurl, (response) => {
        }).done((response) => {});
    

    【讨论】:

    • 如果google-knowledge Graph的开发者看到这个,介意在GKGA的文档中提一下id的正确请求方式吗?
    猜你喜欢
    • 1970-01-01
    • 2015-02-28
    • 2016-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多