Widget Freebase Search

  1. Informazioni su Freebase Suggest
  2. Aggiunta di suggerimenti Freebase al tuo sito
  3. Opzioni di configurazione
  4. Modificare il CSS
  5. Come funzionano gli eventi
  6. Ulteriori informazioni e domande frequenti
  7. Esempi e ricette

Informazioni su Freebase Suggest

Freebase Suggest è un plug-in jQuery che aggiunge il completamento automatico degli argomenti Freebase alle caselle di ricerca sul tuo sito. Gli utenti iniziano a digitare del testo e il widget suggerisce corrispondenze pertinenti tra i milioni di argomenti su Freebase.com o qualsiasi sottoinsieme di tipi come Persone, Località o Animali. I risultati di questo argomento aiutano l'utente a selezionare l'elemento corretto che è identificato in modo univoco con un ID Freebase.

FreeSuggest.png

Funzionalità

Provala!

Suggerimento Freebase in natura

Siti noti per l'utilizzo di Freebase Suggest:

Perché utilizzare Freebase Suggest?

  • Con il completamento automatico, gli utenti possono digitare meno dati per inserirli di più.
  • L'inserimento dei dati è divertente e preciso.
  • Riduci il carico cognitivo sugli utenti grazie alle immagini e alle descrizioni nei riquadri di argomento.
  • Utilizza identificatori efficaci anziché parole chiave di testo. Il nome "Sting" è ambiguo, ma gli ID Freebase /en/sting e /en/sting_1959 non lo sono.
  • Evita nomi duplicati per la stessa entità. Puff papà, P. Diddy, i pettini Sean si riferiscono tutti a /en/sean_combs.

Aggiungere suggerimenti Freebase al tuo sito web

Per aggiungere Freebase Suggest alla tua pagina web, includi il codice seguente nella sorgente del sito web. Puoi anche ottenere e utilizzare una chiave API per estendere la funzionalità di Freebase Suggest.

Codice da includere nel tuo sito web

Includi quanto segue nell'elemento <head> del documento HTML:

<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>

Quindi, utilizza un campo di immissione nel documento <body> in modo simile a questo:

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

Ottenere una chiave API

Ottenere una chiave API consente all'applicazione di effettuare richieste di suggerimenti. Senza una chiave API, il widget funzionerà a scopi di test limitati. Per ottenere una chiave, segui le istruzioni nella nostra pagina Per iniziare.

Quando ottieni una chiave, passala a Freebase Suggest con un codice simile al seguente:

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

Opzioni di configurazione

La tabella seguente descrive le opzioni di configurazione per Freebase Suggest.

Nome Tipo Predefinito Descrizione
avanzato Booleano true Se true, il suggerimento Freebase analizza e gestisce le coppie name:value incorporate nell'input come vincoli di filtro aggiuntivi. Ad esempio, per 'bob type:artist contributed_to:"Love and Theft"', viene applicato un vincolo di filtro aggiuntivo '(all type:artist contributed_to:"Love and Theft")' alla ricerca. Inoltre, quando Advanced è true, Freebase Suggest riconoscerà gli ID e i MID di Freebase in modo che sia possibile cercare direttamente un'entità in base al relativo ID o MID.
esatta Booleano falso Se true, specifica che l'API Search restituisce solo le corrispondenze esatte (di ciò che si trova nell'input). Questo valore viene passato in modo trasparente all'API Search.
filter Stringa null Specifica i vincoli di filtro di ricerca predefiniti che verranno trasmessi in modo trasparente all'API Search come parametri del filtro. Ad esempio, per applicare vincoli a Freebase Suggest per eseguire ricerche solo in college e/o università, utilizza "(all type:/education/university)" come filtro. Per un elenco completo dei filtri di ricerca disponibili, consulta l'API Search o i Vincoli testuali.
chiave Stringa null Fornisci una chiave API per l'API Search predefinita specificata da service_url + service_path. Puoi richiederne uno dalla Console API.
lang Stringa null Il parametro lang accetta un elenco separato da virgole di codici lingua che causano l'esecuzione della ricerca in tutte le lingue specificate e il ranking dei risultati nella prima lingua elencata e viene visualizzato nella prima lingua dell'elenco che ha un nome per l'entità. Attualmente sono supportate 18 lingue: en (inglese), es (spagnolo), fr (francese), de (tedesco), it (italiano), pt (portoghese), zh (cinese), ja (giapponese), ko (coreano), ru (russo), sv (svedese), fi (finlandese), da (danese), nl (du), nl (duk), nl (du) L'inglese ha di gran lunga maggiore copertura ed è la lingua predefinita. Questo valore viene passato in modo trasparente all'API Search.
calcolo punteggio Stringa null Il parametro scoring consente di controllare quali componenti del punteggio di pertinenza vengono utilizzati per calcolare il punteggio finale. Questo valore viene passato in modo trasparente all'API Search.
  • entity: utilizza sia i punteggi SENZA COSTI che quelli relativi alla pertinenza di Google, per impostazione predefinita i punteggi mancanti di Google a 1,0. Questa è l'impostazione predefinita.
  • freebase: utilizza solo il punteggio di pertinenza di Freebase.
  • schema: da utilizzare per la ricerca di entità schema come tipi, proprietà o domini. Il numero di link delle entità schema viene calcolato in modo diverso.
incantesimo Stringa always I valori validi sono always, no_results, no_spelling. Se viene richiesta l'ortografia e la ricerca restituisce una correzione ortografica, Suggerisci Freebase mostrerà la correzione nell'elenco dei suggerimenti. Questo valore viene passato in modo trasparente al servizio di ricerca.
flyout Booleano, bottom true Determina se mostrare o meno una descrizione del passaggio del mouse al passaggio del mouse. Se bottom, mostra il riquadro a scomparsa in fondo all'elenco dei suggerimenti. Se l'elenco dei suggerimenti viene visualizzato sopra la casella di immissione, la finestra a scomparsa viene visualizzata sopra l'elenco. Se true, Suggest fa il possibile per mostrare il riquadro a scomparsa sul lato sinistro o destro dell'elenco.
suggerire_nuovo Stringa null Testo da visualizzare sotto l'elenco dei suggerimenti. Dopo la selezione, viene attivato un fb-select-new.
css Oggetto Sovrascrivi i nomi delle classi CSS predefinite utilizzati per i vari elementi di Freebase Suggest. Per ulteriori dettagli, consulta la sezione Modifica del CSS.
css_prefix Stringa null Puoi specificare un prefisso da anteporre ai nomi delle classi degli elementi Suggest. Ad esempio se css_prefix è "foo-" i nomi dei contenitori saranno "foo-fbs-pane" e "foo-fbs-flyoutpane".
show_id Booleano true Mostra il valore 'notable' restituito dalla ricerca. Tuttavia, se non è disponibile e il valore è true, mostra l'ID dell'elemento.
url_servizio Stringa Il valore è https://www.googleapis.com/freebase/v1 Questo è l'URL di base per il servizio Suggest.
percorso_servizio Stringa /search service_url + service_path = URL al servizio Suggest.
flyout_service_url Stringa null L'URL di base per il servizio di volo. Se il valore è null, il valore predefinito è service_url.
flyout_service_path Stringa Il valore è /search?filter=(all mid:${id})&output=(notable:/client/summary description type)&key=${key} flyout_service_url + flyout_service_path = url al servizio di volo. '${id}' e '{key}' sono sostituiti rispettivamente dall'ID elemento visibile al passaggio del mouse e dalla chiave API.
flyout_image_service_url Stringa null L'URL di base per l'immagine nel riquadro a scomparsa. Se il valore è null, il valore predefinito è service_url.
percorso_immagine_volo Stringa Il valore è /image${id}?maxwidth=75&key=${key}&errorid=/freebase/no_image_png flyout_image_service_url + flyout_image_service_path = URL al servizio di immagini. '${id}' e '{key}' verranno sostituiti rispettivamente dall'ID elemento visibile al passaggio del mouse e dalla chiave API.
padre_volo Stringa (selettore jQuery) null Per impostazione predefinita, il contenitore a scomparsa viene aggiunto al corpo del documento e posizionato in modo assoluto. Il flyout_parent specifica un elemento padre diverso e il riquadro a scomparsa non verrà posizionato in modo assolutamente sicuro.
align Stringa null Se align non è impostato, l'elenco dei suggerimenti è allineato a "sinistra" o "destra" della casella di input in base alla posizione nel documento. Per eseguire l'override di questo comportamento e impostarne esplicitamente l'allineamento, imposta align su "left" or "right".
stato Array[4](Stringa) ["Inizia a digitare per ricevere suggerimenti...", "Ricerca in corso...", "Seleziona una voce dall'elenco:", "Spiacenti, si è verificato un problema. Riprova più tardi"] Messaggi di stato che vengono visualizzati nelle quattro diverse fasi della funzione Suggerisci; [0] quando la casella di immissione è vuota e viene visualizzata. [1] durante il recupero dei risultati, [2] nella visualizzazione dei risultati, [3] in caso di errore del servizio Suggest. Puoi sostituire questi messaggi di stato predefiniti passando in un array di stringhe diverso che corrisponde alle 4 fasi differenti.
principale Stringa (selettore jQuery) null Per impostazione predefinita, l'elenco dei suggerimenti viene aggiunto al corpo del documento e posizionato in modo assoluto. Utilizza parent per specificare un elemento padre diverso e l'elenco non verrà posizionato in modo assolutamente sicuro.
animate Booleano falso Se true, la visualizzazione dell'elenco Suggest viene animata utilizzando l'effetto scorrimento jQuery.
ritardo_xhr Numero intero (ms) 200 Specifica il ritardo prima che vengano restituiti i risultati. Ciò è utile nel caso in cui mql_filters sia complesso e l'API Suggest potrebbe richiedere più o meno tempo per rispondere rispetto al ritardo impostato come hardcoded, causando un'esperienza utente leggermente ridotta e un carico non necessario.
z-index Numero intero null Imposta lo z-index dei container più esterni (fbs-pane, fbs-flyoutpane). Ciò è utile quando si utilizza Suggerisci Freebase nelle finestre di dialogo in modo che gli elementi Suggerisci vengano visualizzati in alto.

Modificare il CSS

Le classi CSS predefinite utilizzate da Freebase Suggest possono essere sostituite inviando una mappa di valori alternativi ai nomi delle classi CSS tramite l'opzione di configurazione css. La seguente tabella descrive le classi nel CSS predefinito.

riquadro Il contenitore esterno dell'elenco dei suggerimenti.

Predefinito: 'fbs-pane'

list Elenco dei suggerimenti.

Predefinito: 'fbs-list'

Articolo Gli elementi dell'elenco Suggerisci.

Valore predefinito: 'fbs-item'.

item_name L'elemento contenente il nome dell'elemento.

Predefinito: 'fbs-item-name'

selezionato L'elemento attualmente evidenziato/selezionato. Valore predefinito: 'fbs-selected'.
stato L'elemento contenente i messaggi di stato. Valore predefinito: 'fbs-status'.
item_type [tipo_di_articolo] L'elemento contenente il tipo rilevante di elemento. Valore predefinito: 'fbs-item-type'.
pannelli volanti Il contenitore esterno a scomparsa.

Predefinito: 'fbs-flyoutpane'

Ad esempio:

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

Come funzionano gli eventi

Il suggerimento Freebase attiva i seguenti eventi nel contesto dell'input con cui viene inizializzato.

fb-select: quando viene selezionato un elemento dall'elenco dei suggerimenti. L'evento è accompagnato da un oggetto dati in cui data.name e data.id rappresentano il nome e l'ID dell'elemento selezionato.

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

fb-select-new: quando l'opzione suggest_new è attivata, questo evento viene attivato quando viene selezionato l'elemento suggested_new. L'evento è accompagnato dal valore di input.

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

Domande frequenti e altre informazioni

Domande, segnalazioni di bug e feedback sono benvenuti nel gruppo Google degli sviluppatori Freebase o nell'elenco dei problemi (scegli il componente "Ricerca/Suggerisci").

Ho appena creato un nuovo argomento, ma non compare in Suggest - cosa sta succedendo?

Freebase Suggest utilizza l'API Search per fornire i risultati, che viene aggiornato quasi in tempo reale. In genere, i nuovi argomenti vengono visualizzati entro un minuto circa, ma questo può essere più lungo se il sistema ha un carico elevato.

Esempi e ricette

Utilizzo di base

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

Provala!

Suggerisci nuovo

$("#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);
 });

Provala!

Limitare i suggerimenti con un filtro

Suggerisci film diretti da 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);
});

Provala!

Filtri dalla casella di testo

È possibile filtrare i risultati digitando uno dei vincoli del filtro direttamente nella casella Suggerisci. Ad esempio, per cercare libri sul giardinaggio, prova a:

gardening type:/book/book
gardening type:book

In realtà, puoi utilizzare qualsiasi vincolo di Search Metaschema per filtrare i risultati. Ad esempio, per cercare tutte le persone che "contributed_to" il film "Salvare il personaggio di Ryan", prova:

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

Come indicato in Opzioni di configurazione, lang, scoring, spell, exact sono trasmessi in modo trasparente all'API di ricerca. Puoi anche sovrascriverle in linea. Ad esempio, se Freebase Suggest viene inizializzato con lang:"en" e vuoi cercare anche nomi in francese, prova a:

babar lang:fr,en

Per ulteriori filtri e vincoli di ricerca, consulta il Libro di ricette per la ricerca.