Widget Penelusuran Freebase

  1. Tentang Saran Freebase
  2. Menambahkan Saran Freebase ke situs Anda
  3. Opsi konfigurasi
  4. Mengubah CSS
  5. Cara kerja acara
  6. Info selengkapnya dan FAQ
  7. Contoh dan resep

Tentang Saran Freebase

Freebase Suggest adalah plugin jQuery yang menambahkan pelengkapan otomatis topik Freebase ke kotak penelusuran di situs Anda. Pengguna mulai mengetik teks dan widget akan menyarankan kecocokan yang relevan dari jutaan topik di Freebase.com atau subkumpulan jenis lainnya seperti Orang, Lokasi, atau Hewan. Flyout topik membantu pengguna memilih item yang benar yang diidentifikasi secara unik dengan ID Freebase.

Saran Freebase.png

Fitur

Cobalah sekarang juga.

Saran Freebase di alam liar

Situs yang dikenal menggunakan Saran Freebase:

Mengapa menggunakan Freebase Suggest?

  • Dengan pelengkapan otomatis, pengguna Anda dapat mengetik lebih sedikit untuk memasukkan lebih banyak data.
  • Entri data menyenangkan dan akurat!
  • Kurangi beban kognitif pada pengguna Anda berkat gambar dan deskripsi dalam pembahasan topik.
  • Gunakan ID yang kuat, bukan kata kunci teks. Nama "Sting" ambigu, tetapi ID Freebase /en/sting dan /en/sting_1959 tidak.
  • Hindari nama duplikat untuk entitas yang sama. Musik Puff Daddy, P. Diddy, Sean Combs merujuk ke /en/sean_combs.

Menambahkan Saran Freebase ke situs web Anda

Untuk menambahkan Saran Freebase ke halaman web Anda, sertakan kode berikut dalam sumber situs Anda. Anda juga dapat memperoleh dan menggunakan kunci API untuk memperluas fungsi Saran Freebase.

Kode untuk disertakan dalam situs Anda

Sertakan hal berikut dalam <head> dokumen HTML Anda:

<link type="text/css" rel="stylesheet" href="https://www.gstatic.com/freebase/suggest/4_2/suggest.min.css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script>
<script type="text/javascript" src="https://www.gstatic.com/freebase/suggest/4_2/suggest.min.js"></script>
<script type="text/javascript">
$(function() {
  $("#myinput").suggest({filter:'(all type:/film/director)'});
});
</script>

Kemudian, gunakan kolom input di dokumen <body> yang mirip dengan ini:

<input type="text" id="myinput"/>

Memperoleh kunci API

Dengan mendapatkan kunci API, aplikasi Anda dapat membuat permintaan Suggest. Tanpa kunci API, widget akan berfungsi untuk tujuan pengujian terbatas. Untuk mendapatkan kunci, ikuti petunjuk di halaman Memulai.

Setelah Anda mendapatkan kunci, teruskan ke Freebase Suggest dengan sesuatu seperti ini:

$(function() {
  $("#myinput").suggest({ "key" : "<your api key>"});
});

Opsi konfigurasi

Tabel berikut menjelaskan opsi konfigurasi untuk Saran Freebase.

Name Jenis Default Deskripsi
lanjutan Boolean true Jika benar, Saran Freebase akan mengurai dan menangani pasangan name:value inline dalam input sebagai batasan filter tambahan. Misalnya, untuk 'bob type:artist contributed_to:"Love and Theft"', batasan filter tambahan, '(all type:artist contributed_to:"Love and Theft")' diteruskan ke penelusuran. Selain itu, jika lanjutan benar, Saran Freebase akan mengenali ID dan MID Freebase sehingga seseorang dapat langsung menelusuri entitas berdasarkan ID atau MID-nya.
persis Boolean false Jika disetel ke benar, API ini akan menentukan bahwa Search API hanya menampilkan hasil yang sama persis (dari elemen yang ada di input). Nilai ini diteruskan secara transparan ke Search API.
filter String null Tentukan batasan filter penelusuran default yang akan diteruskan secara transparan ke Search API sebagai parameter filter. Misalnya, untuk membatasi Freebase Suggest agar hanya menelusuri di perguruan tinggi dan/atau universitas, gunakan "(all type:/education/university)" sebagai filter. Lihat Search API atau Textual Constraints untuk mengetahui daftar lengkap filter penelusuran yang tersedia.
tombol String null Berikan kunci API untuk Search API default yang ditentukan oleh service_url + service_path. Anda bisa mendapatkannya dari Konsol API.
lang String null Parameter lang menerima daftar kode bahasa yang dipisahkan koma yang menyebabkan penelusuran dilakukan dalam semua bahasa yang ditentukan dan hasilnya diberi peringkat dalam bahasa pertama yang tercantum dan ditampilkan dalam bahasa pertama dalam daftar yang memiliki nama untuk entity. Saat ini, 18 bahasa didukung: en (Inggris), es (Spanyol), fr (Prancis), de (Jerman), it (Italia), pt (portuguese), zh (China), ja (Jepang), ko (korea), ru (rusa), nl (dudukan), fi (finnish), da (denmarkian), nl (dudukan (hududi), nl (dudukang) Sejauh ini, bahasa Inggris memiliki cakupan paling banyak dan merupakan bahasa default. Nilai ini diteruskan secara transparan ke Search API.
penskoran String null Parameter scoring memungkinkan untuk mengontrol komponen skor relevansi yang digunakan untuk menghitung skor akhir. Nilai ini diteruskan secara transparan ke Search API.
  • entity: Gunakan skor relevansi Google dan FREEBASE, setelan default untuk skor Google yang tidak ada ke 1,0. Ini adalah defaultnya.
  • freebase: Hanya gunakan skor relevansi Freebase.
  • schema: Gunakan saat mencari entitas skema seperti jenis, properti, atau domain. Jumlah link entitas skema dihitung secara berbeda.
ejaan String always Nilai yang valid adalah always, no_results, no_spelling. Jika ejaan diminta dan penelusuran menampilkan koreksi ejaan, Saran Freebase akan menampilkan koreksi dalam daftar Saran. Nilai ini secara transparan diteruskan ke layanan penelusuran.
terbang Boolean, bottom true Menentukan apakah deskripsi flyout akan ditampilkan atau tidak. Jika bottom, tampilkan flyout di bagian bawah daftar Saran. Jika daftar Sarankan ditampilkan di atas kotak masukan, jalan pintas ditampilkan di atas daftar tersebut. Jika benar, Suggest akan melakukan yang terbaik untuk menampilkan batas waktu di sisi kiri atau kanan daftar.
saran_baru String null Teks yang akan ditampilkan di bawah daftar saran. Saat dipilih, fb-select-new akan dipicu.
css Objek Timpa nama class CSS default yang digunakan untuk berbagai elemen Saran Freebase. Lihat Memodifikasi CSS untuk detailnya.
css_prefix String null Anda dapat menentukan awalan yang akan ditambahkan di awal nama class elemen Suggest. Misalnya jika css_prefix adalah "foo-" nama penampungnya akan menjadi "foo-fbs-pane" dan "foo-fbs-flyoutpane".
show_id Boolean true Menampilkan 'notable' nilai yang ditampilkan oleh penelusuran. Namun, jika tidak tersedia dan benar, item akan menampilkan ID item.
service_url [url_layanan] String Nilai adalah https://www.googleapis.com/freebase/v1 Ini adalah URL dasar untuk layanan Sarankan.
service_path [jalur_layanan] String /search service_url + service_path = URL ke layanan Suggest.
flyout_service_url String null URL dasar untuk layanan flyout. Jika null, setelan defaultnya adalah service_url.
flyout_service_path String Nilai adalah /search?filter=(all mid:${id})&output=(notable:/client/summary description type)&key=${key} flyout_service_url + flyout_service_path = URL untuk layanan keluar. '${id}' dan '{key}' masing-masing digantikan oleh ID item yang diarahkan dan kunci API.
flyout_image_service_url String null URL dasar untuk gambar di panduan. Jika null, setelan defaultnya adalah service_url.
flyout_image_service_path String Nilai adalah /image${id}?maxwidth=75&key=${key}&errorid=/freebase/no_image_png flyout_image_service_url + flyout_image_service_path = URL ke layanan gambar. '${id}' dan '{key}' masing-masing akan digantikan oleh ID item yang melayang dan kunci API.
flyout_parent String (pemilih jQuery) null Secara default, penampung flyout ditambahkan ke isi dokumen dan diposisikan secara mutlak. flyout_parent menentukan induk yang berbeda dan flyout tidak akan benar-benar diposisikan.
ratakan String null Jika align tidak disetel, daftar Sarankan akan disejajarkan dengan "kiri" atau "kanan" dari kotak masukan bergantung pada posisinya di dokumen. Untuk mengganti perilaku ini dan menyetel penyelarasannya secara eksplisit, tetapkan align ke "left" atau "right".
status Array[4](String) ["Mulai mengetik untuk mendapatkan saran...", "Menelusuri...", "Pilih item dari daftar:", "Maaf, terjadi masalah. Coba lagi nanti"] Pesan status yang muncul di 4 tahap yang berbeda pada Suggest; [0] Saat kotak input kosong dan mendapatkan fokus. [1] saat mengambil hasil, [2] saat menampilkan hasil, [3] saat ada kesalahan dari layanan Suggest. Anda dapat mengganti pesan status default ini dengan meneruskan array string yang berbeda sesuai dengan 4 tahapan yang berbeda.
induk String (pemilih jQuery) null Secara default, daftar Saran ditambahkan ke isi dokumen dan diposisikan secara mutlak. Gunakan parent untuk menentukan induk yang berbeda dan daftar tersebut tidak akan benar-benar diposisikan.
animate Boolean false Jika benar, tampilan daftar Sarankan akan dianimasikan menggunakan efek slideDown jQuery.
xhr_delay Bilangan bulat (md) 200 Menentukan penundaan sebelum menampilkan hasil. Ini berguna jika mql_filters sangat rumit dan Suggest API mungkin memerlukan waktu lebih lama atau mirip untuk dijawab daripada penundaan hardcode, yang menyebabkan penurunan kualitas pengalaman pengguna dan pemuatan yang tidak perlu.
Indeks Bilangan Bulat null Menetapkan indeks z dari sebagian besar penampung (fbs-pane, fbs-flyoutpane). Hal ini berguna saat menggunakan Saran Freebase di kotak dialog sehingga elemen Sarankan ditampilkan di bagian atas.

Mengubah CSS

Class CSS default yang digunakan oleh Freebase Suggest dapat diganti dengan meneruskan peta nilai alternatif untuk nama class CSS menggunakan opsi konfigurasi css. Tabel berikut menjelaskan class di CSS default.

panel Penampung luar daftar Saran.

Default: 'fbs-pane'

list Daftar Sarankan.

Default: 'fbs-list'

item Item daftar Sarankan.

Default: 'fbs-item'.

item_name Elemen yang berisi nama item.

Default: 'fbs-item-name'

dipilih Item yang saat ini ditandai/dipilih. Default: 'fbs-selected'.
status Elemen yang berisi pesan status. Default: 'fbs-status'.
item_type [tipe_item] Elemen yang berisi jenis item yang terkenal. Default: 'fbs-item-type'.
panel flyout Penampung luar flyout.

Default: 'fbs-flyoutpane'

Contoh:

$("#myinput").suggest({
  "css": {
    "pane": "custom-pane-class",
    "list": "custom-list-class"
  }
});

Cara kerja peristiwa

Saran Freebase memicu peristiwa berikut dalam konteks input yang diinisialisasi dengannya.

fb-select - Saat item dipilih dari daftar Saran. Peristiwa ini disertai dengan objek data dengan data.name dan data.id yang mewakili nama dan ID item yang dipilih.

$("#myinput").suggest().bind("fb-select", function(e, data) { ... });

fb-select-new - Saat opsi suggest_new diaktifkan, peristiwa ini dipicu saat item_saran_baru dipilih. Peristiwa disertai dengan nilai input.

$("#myinput").suggest({'suggest_new': 'This is the suggest new text'}).bind("fb-select-new", function(e, val) { ... });

FAQ dan informasi selengkapnya

Pertanyaan, laporan bug, dan masukan diterima dengan sangat baik di Google Grup Developer Freebase atau Daftar Masalah (pilih komponen "Telusuri/Sarankan").

Saya baru saja membuat topik baru, tetapi topik ini tidak muncul di Sarankan - apa yang terjadi?

Freebase Suggest menggunakan Search API untuk memberikan hasilnya, dan diperbarui hampir secara real-time. Topik baru biasanya muncul dalam sekitar satu menit, tetapi bisa lebih lama jika sistem berada dalam beban kerja yang tinggi.

Contoh dan resep

Penggunaan dasar

$("#example1")
 .suggest()
 .bind("fb-select", function(e, data) {
   alert(data.name + ", " + data.id);
});

Cobalah sekarang juga.

Sarankan baru

$("#example2")
 .suggest({
   "suggest_new": "Click on me if you don't see anything in the list"
 })
 .bind("fb-select", function(e, data) {
   alert(data.name + ", " + data.id);
 })
 .bind("fb-select-new", function(e, val) {
   alert("Suggest new: " + val);
 });

Cobalah sekarang juga.

Membatasi saran menggunakan filter

Menyarankan film yang disutradarai oleh Steven Spielberg.

$("#example5")
.suggest({
   "filter": "(all type:/film/film contributor:\"Steven Spielberg #directed_by\")"
})
.bind("fb-select", function(e, data) {
   alert(data.name + ", " + data.id);
});

Cobalah sekarang juga.

Memfilter dari kotak teks

Anda dapat memfilter hasil dengan mengetik salah satu batasan filter langsung ke kotak Saran. Misalnya, untuk menelusuri buku tentang berkebun, coba:

gardening type:/book/book
gardening type:book

Bahkan, Anda dapat menggunakan batasan Search Metaschema untuk memfilter hasil. Misalnya, untuk menelusuri semua orang yang "contributed_to" film "Menyimpan Ryan Pribadi", coba:

contributed_to:"Saving Private Ryan" type:/people/person

Seperti yang dinyatakan dalam Opsi konfigurasi, lang, scoring, spell, exact diteruskan secara transparan ke Search API. Anda juga dapat menimpanya secara inline. Misalnya, jika Freebase Suggest diinisialisasi dengan lang:"en" dan Anda juga ingin menelusuri nama Prancis, coba:

babar lang:fr,en

Untuk filter tambahan dan batasan penelusuran, lihat Search Cookbook.