Usare le Google AJAX search API

Torniamo un po' a sporcarci le mani con il codice, che fa sempre bene. Oggi vediamo come utilizzare le Google AJAX search API, un nome lungo, per identificare le API del servizio di ricerca del buon vecchio Google.

Le API sono ancora un po' giovani IMVHO (ad esempio non è possibile personalizzare a fondo i CSS del modulo di ricerca, ritornano pochissimi risultati), ma promettono davvero bene: è possibile anche cercare video, e utilizzare le Google Maps.

In questo tutorial vediamo come costruire un motorino di ricerca che effettua ricerche sia all'interno di un dominio che all'interno di tutti i blog indicizzati da Google Blogsearch. Utile se avete un blog, ma non solo.

Per prima cosa richiediamo una API KEY a questo indirizzo. La procedura è davvero semplice, ci viene fornito anche un piccolo script già funzionante (con CSS Google incluso, fate attenzione, lo dovete usare), da poter testare subito.

Una volta ottenuta la nostra chiave procediamo alla costruzione della funzione init() che si occuperà di creare il nostro motore di ricerca al caricamento della pagina. La sintassi non è chiarissima come quella delle Google Maps, ma la documentazione e gli esempi in qualche modo aiutano.

La funzione è tutta qui:

function init()
{
// Crea un searchcontrol
var searchControl = new GSearchControl();
 
// Imposto visualizzazione con tabs
var drawOptions = new GdrawOptions();
drawOptions.setDrawMode(GSearchControl.DRAW_MODE_TABBED);
 
// Imposto modalità di ricerca su Napolux.com e tutti i blog.
var siteSearch = new GwebSearch();
var blogSearch = new GblogSearch();
 
// Label per la tab
siteSearch.setUserDefinedLabel("Cerca in Napolux.com");
blogSearch.setUserDefinedLabel("Cerca in tutti i blog");
 
// Restringo la ricerca web al dominio Napolux.com
siteSearch.setSiteRestriction("napolux.com");
 
// Aggiungo i due "searcher" all'oggetto searchcontrol
searchControl.addSearcher(siteSearch);
searchControl.addSearcher(blogSearch);
 
// Disegno tutto a video nella div "searchcontrol" passando le opzioni
searchControl.draw(document.getElementById("searchcontrol"),drawOptions);
 
// Esegue la prima ricerca con la chiave PHP passata come parametro
searchControl.execute("php");
}

Come al solito il codice si spiega da solo, le funzioni "sono quelle", poco parametrizzabili purtroppo. Un esempio di quello che si può realizzare lo trovate qui, potete ricopiarlo tranquillamente cambiando la API key.

, , ,
1 Star2 Stars3 Stars4 Stars5 Stars Vota!
Loading ... Loading ...
Condividi

Articoli che potrebbero interessarti

Ajax for dummies
Cercasi programmatore AJAX
Google Blog Search aggiunge il ping
15 Links AJAX
40 links di-a-da-in-con-su-per-tra-fra Google

8 Commenti per “Usare le Google AJAX search API”

  1. MyAvatars 0.2 Flavio ha detto:

    Noi abbiamo usato le API in modo leggermente diverso su Daubau.it, riuscendo a customizzare completamente il form di ricerca e i risultati. Ecco il codice:

    var webSearch = new GwebSearch();
    webSearch.setSiteRestriction(’daubau.it’);
    webSearch.setResultSetSize(GSearch.LARGE_RESULTSET);
    webSearch.setNoHtmlGeneration();
    var searchCallbackObject = new SearchCallbackObject(webSearch, id);
    webSearch.setSearchCompleteCallback(searchCallbackObject, SearchCallbackObject.prototype.searchCompleteHandler);
    webSearch.execute(q);

  2. MyAvatars 0.2 Napolux ha detto:

    Bello DauBau! :P

  3. MyAvatars 0.2 Surfparadise ha detto:

    Ciao,
    vorrei integrare questa fantastica ricerca nel mio blo su blogger…. ma in quanto a codice sono propio agli inizi….. Mi puoi dare una mano….
    Come faccio a inserire il codice che hai postato nel blog in modo che funzioni tutto? Dove lo inserisco?

    Questo è il mio sito di test: http://italian-sexy-girls.blogspot.com/
    …come puoi vedere il search tool è uno schifo che ho trovato in google draft…. mi puoi dare una mano a renderlo più o meno come su questo sito: http://iake.blogspot.com/?

    Ti ringrazio
    Surfparadise

  4. MyAvatars 0.2 Napolux ha detto:

    Non ne ho proprio idea Surfparadise. E’ cmq anche un problema di CSS a quanto vedo…

  5. MyAvatars 0.2 Surfparadise ha detto:

    in che senso ha un problema di css??… ora ho il mio codice di ricerca che funziona…. come faccio a integrarlo?….

    Il sito che ti ho linkato di test, ha la sua visione ottimale con firefox….

  6. MyAvatars 0.2 Pr0v4 ha detto:

    Ciao Napo, complimenti per l’articolo!
    Volevo soltanto un piccolo chiarimento da parte tua, come si vede dal tuo esempio, utilizzi la funzione init.
    Ma allora perché, come evidenzioato qui http://code.google.com/apis/maps/documentation/index.html al secondo punto della voce Using the Google AJAX API Loader, la stessa google dice di utilizzare questo codice:
    google.load(”maps”, “2″);
    ovvero al posto di utilizzare una funzione dichiarata da te, parte tutto dall’oggetto google. Ma a me non funziona….

    PS: Sto sperimentando le google API per crearmi una mappa personalizzata, ma mi sono permesso di commentare qua perché, come scritto da te all’inizio dell’articolo, queste API vanno bene sia per le mappe che per le ricerche.

  7. MyAvatars 0.2 Pr0v4 ha detto:

    PS: ho visto che è passato un pò di tempo dalla pubblicazione del tuo articolo, ma speravo potessi aiutarmi allo stesso modo :D

  8. MyAvatars 0.2 Napolux ha detto:

    @Pr0v4
    … Questa mi giunge nuova. Gli do un’occhiata…

Lascia un commento



Chiudi
Invia e-mail