Alcuni esempi di utilizzo di OpenSearchStore sono disponibili nella cartella /ibm_opensearch/data/demos. Tali demo fanno riferimento ai documenti descrittivi OpenSearch che è necessario richiamare e modificare per inviare le richieste tramite un proxy locale, poiché le richieste tra domini non sono possibili in browser correnti.
Questo esempio viene costruito come se l'endpoint OpenSearch si trovasse sullo stesso server di questo pacchetto, di conseguenza non richiede la complessità della configurazione di un proxy. Consultare il seguente documento descrittivo OpenSearch di esempio con soltanto gli elementi richiesti inclusi:
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"> <ShortName>Sample Search Engine</ShortName> <Description>Searches each element at example.com</Description> <Url type="application/atom+xml" template="http://example.com/search/{searchTerms}" /> </OpenSearchDescription>
Il documento descrittivo si trova in un URL come http://example.com/osd.xml, con un tipo mime application/opensearchdescription+xml. È ora possibile creare un'istanza di un archivio dati nella pagina "http://example.com/index.html" can now con la seguente markup:
<script src="dojo/dojo.js"></script> <script> dojo.require("ibm_opensearch.data.OpenSearchStore"); dojo.require("dojo.parser"); </script> <div dojoType="ibm_opensearch.data.OpenSearchStore" url="osd.xml" jsId="openSearchStore"> </div>
Una volta caricata e analizzata la pagina, l'archivio è disponibile facendo riferimento alla variabile openSearchStore. È possibile utilizzare l'archivio per richiamare i risultati in base alle parole chiave:
<table> <tbody id="searchResults"> </tbody> </table> <script> dojo.addOnLoad(function(){ function onComplete(items, request){ if(items.length > 0){ var tbody = dojo.byId("searchResults"); var test; var tr, td; for(var i=0; i<items.length; i++){ td = dojo.doc.createElement("td"); td.innerHTML = openSearchStore.getValue(items[i], "content"); tr = dojo.doc.createElement("tr"); tr.appendChild(td); tbody.appendChild(tr); } } } //Azione da eseguire in caso di ricerca non riuscita function onError(error, request){ statusWidget.setValue("PROCESSING ERROR."); } var request = { query: {searchTerms: "atom"}, onComplete: onComplete, onError: onError }; openSearchStore.fetch(request); }); </script>
L'esempio precedente forma un oggetto richiesta, impostando il parametro searchTerms su atom, che indica la parola chiave da ricercare sul server. In seguito, si richiama fetch(request), che invia i risultati alla funzione onComplete. Tale funzione esegue un'iterazione su ogni risultato, richiama l'attributo content, l'unico attributo disponibile su una voce OpenSearchStore e lo inserisce in una cella della tabella visualizzata sulla pagina.
Esempi di utilizzo più dettagliati, incluso l'utilizzo di una casella di testo per immettere i termini di ricerca, vengono mostrati nelle pagine di demo.