知識圖譜搜尋小工具是一種 JavaScript 模組,可協助您在網站的輸入方塊中新增主題。使用者開始輸入文字後,小工具會透過 Knowledge Graph Search API 尋找相符的文字,在輸入時顯示相關的內容。
功能與特色
- 跨瀏覽器 - 這個程式碼採用經過妥善測試且支援跨瀏覽器的 Closure,並編譯為純粹的 JavaScript。
- 跨網域。JSONP 不需要 Proxy 伺服器。
- 由 Google 伺服器代管。
- 免費!(適用標準 Google API 條款)。
為什麼要使用知識圖譜搜尋小工具?
- 讓使用者減少輸入後可輸入的資料。
- 讓輸入資料的過程更簡單準確。
- 提供圖片與說明,減少使用者的認知量。
- 避免同一個實體的名稱重複:Puff Daddy、P. Anddy,Sean Comb 都是指
/en/sean_combs
。
在網站中加入知識圖譜搜尋小工具
如要在網頁中加入知識圖譜搜尋小工具,請在網站原始碼中加入下列程式碼。您必須使用 API 金鑰,小工具才能存取 Google 知識圖譜 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()
,如上所示。或者,您也可以使用第三個引數傳入設定物件,藉此指定各種篩選、限制和事件處理常式。
傳遞設定物件
知識圖譜搜尋小工具接受選用設定參數。這可讓您使用多個設定選項填入資料結構,並將其傳送至小工具,如以下範例所示。
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);
設定選項
下表說明您可以將哪些設定選項傳遞至知識圖譜搜尋小工具。
名稱 | 類型 | 預設 | 說明 |
---|---|---|---|
語言 | Array(字串) | 英文 |
觸發搜尋作業的語言代碼清單 (以 ISO 639-1 定義)。結果會按第一種語言排序,並以首個具備該實體名稱的語言顯示。英文的報導最多。這個值會公開傳送至 Search API。 例如,如果語言設為 [fr, en] |
限制 | 整數 | 20 | 下拉式選單中的結果數量上限。 |
types | Array(字串) | 不限類型 | 只傳回符合任一實體類型的實體。如果省略這個參數,系統會傳回任何實體類型的相符結果。 |
maxDescChars | 整數 | 無上限 | 每個實體詳細說明的字元數上限。長度超過 maxDescChars 的內容會遭到截斷。 |
selectHandler | 函式 | 空值 |
選取資料列時要呼叫的回呼函式。回呼函式的引數是事件,且包含 row 屬性,其中含有所選資料列的相關資訊。如需這個回呼的使用範例,請參閱「使用事件處理常式」。 |
highlightHandler | 函式 | 空值 |
使用者將滑鼠遊標懸停在資料列上時,系統會呼叫的回呼函式。回呼函式的引數是事件,且包含 row 屬性,其中包含所選資料列的相關資訊。請注意,許多裝置 (例如觸控螢幕行動裝置硬體) 無法產生這個事件。 如需使用這個回呼的範例,請參閱「使用事件處理常式」。 |
實作事件處理常式
知識圖譜搜尋小工具會在初始化的輸入環境內觸發下列事件。您可以在設定物件中提供回呼函式,以實作這些事件的處理常式。
selectHandler:使用者從「建議」清單中選取項目時,會觸發這個事件。事件會與資料物件一併顯示,其中 event.row
是所選資料列的資料。event.row.name
和 event.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);
}
});
說明和意見回饋
如果您對知識圖譜 Search API 有任何問題、錯誤報告或意見回饋,請前往說明論壇。