知识图谱搜索微件

知识图谱搜索微件是一个 JavaScript 模块,可帮助您添加 输入框。用户开始输入文本和 widget 使用 Knowledge Graph Search API 在用户输入时查找相关的匹配项。

搜索 widget 示例

功能

  • 跨浏览器 - 使用经过充分测试的跨浏览器 Closure 编写而成,并编译为纯 JavaScript。
  • 跨网域。得益于 JSONP,无需使用代理服务器。
  • 托管在 Google 服务器上。
  • 免费!(需遵守标准 Google API 条款。)

试试看!

为什么要使用知识图谱搜索微件?

  • 减少用户输入量,多输入一些数据。
  • 让数据输入变得更简单、更准确。
  • 提供图片和说明,减轻用户的认知负担。
  • 避免为同一实体使用重复的名称:Puff Daddy, P。Diddy、Sean Combs 都提到/en/sean_combs

向您的网站添加知识图谱搜索微件

要将知识图谱搜索微件添加到页面,请添加以下内容 添加到网站源代码中您需要使用 API 密钥 以便微件可以访问 Google Knowledge Graph API。

要添加到您网站的代码

请在 HTML 文档的 <head> 中添加以下内容:

<link type="text/css" rel="stylesheet" href="https://www.gstatic.com/knowledge/kgsearch/widget/1.0/widget.min.css">
<style>
  .kge-search-picker {
    width: <DROPDOWN_MENU_WIDTH>;
  }
</style>
<script type="text/javascript" src="https://www.gstatic.com/knowledge/kgsearch/widget/1.0/widget.min.js"></script>

然后,在文档 <body> 中使用包含 匹配 ID,如下所示:

<input type="text" id="myInput">
<script type="text/javascript">
  KGSearchWidget(<API_KEY>, document.getElementById("myInput"), {});
</script>

获取和使用 API 密钥

获取 API 密钥后,您的应用就可以提出建议请求了。不包含 API 密钥,则微件将无法正常运行。如果您还没有 API 密钥, 请按照 前提条件页面 获得一个。

获取密钥后,使用以下代码将其传递给知识图谱搜索微件 代码,如下所示:

KGSearchWidget(<API_KEY>, document.getElementById("myInput"), {});

配置搜索微件

您的 JavaScript 可以使用第三个参数为空来调用 KGSearchWidget(),如下所示: 如上图所示或者,您也可以使用第三个参数 对象来指定各种过滤、约束条件和事件处理脚本。

传递配置对象

知识图谱搜索微件接受可选的配置参数。 这样,您就可以使用多个配置选项填充数据结构 并将其传递给 widget,如下例所示。

var config = {
  'limit': 10,
  'languages': ['en', 'fr'],
  'types': ['Person', 'Movie'],
  'maxDescChars': 100,
};
config['selectHandler'] = function(e) {
  alert(e.row.name + ' selected');
};
config['highlightHandler'] = function(e) {
  alert(e.row.name + ' highlighted');
};
KGSearchWidget(<API_KEY>, document.getElementById('myInput'), config);

配置选项

下表介绍了您可以传递到 知识图谱搜索微件。

名称 类型 默认值 说明
语言 数组(字符串) 英语 语言代码列表 (在 ISO 639-1 中定义),从而以所有语言执行搜索 。结果会按所列的第一语言进行排名, 列表中以第一个语言显示 实体。英语的覆盖范围最广。该值是透明的 传递给 Search API。
例如,如果语言设置为 [fr, en], the widget will show descriptions for entities in the primary language, French, when possible. Otherwise, it will fall back to English as a secondary language.
限制 整数 20 下拉菜单中的结果数上限。
类型 数组(字符串) 任何类型 仅返回与所提供的任意一项匹配的实体 实体 类型。如果省略此参数,则返回任何实体类型的匹配项。
maxDescChars 整数 无限制 每个实体的详细说明中的字符数上限。 长度超过 maxDescChars 的内容将被截断。
selectHandler 函数 null 选择行时要调用的回调函数。参数的 回调函数是一个事件,并且包含 row 属性 包含有关所选行的信息。请参阅 使用事件处理脚本 获取使用此回调的示例。
highlightHandler 函数 null 用户将鼠标悬停在行上时调用的回调函数。 该回调函数的参数是一个事件,并且包含 row 属性,包含有关被 已选择。
请注意,许多设备(例如触摸屏移动硬件)无法 生成此事件。
请参阅使用事件处理脚本 获取使用此回调的示例。

实现事件处理脚本

知识图谱搜索微件会在 为其初始化的输入源的上下文。你可以提供回电 配置对象中的函数来实施 事件处理脚本

selectHandler - 用户选择商品时会触发此事件 。该事件附带一个数据对象,其中 event.row 是所选行的数据。 event.row.nameevent.row.id 表示名称, 所选商品的 ID。以下代码片段展示了如何测试 selectHandler 支持。

KGSearchWidget(<API_KEY>, document.getElementById("myInput"), {
  "selectHandler": function(e) {
    alert("selected " + e.row.name);
  }
});

highlightHandler - 此事件在商品突出显示时触发 手动将鼠标光标悬停在它上面以下代码段展示了如何测试 highlightHandler 支持。

KGSearchWidget(<API_KEY>, document.getElementById("myInput"), {
  "highlightHandler": function(e) {
    alert("highlighted " + e.row.name);
  }
});

帮助和反馈

如果您对 Knowledge Graph Search API,使用 帮助论坛