Database Reference
In-Depth Information
gewählte /artist -Seite und umgekehrt. Doch wir können die Suche noch
etwas einfacher gestalten.
redis/bands.js
appServer.addRoute( "^/search$" , function (req, res) {
var query = req.param( 'term' );
redisClient.keys( "band-name:" +query+ " * " , function (error, keys) {
var bands = [];
keys.forEach( function (key){
bands.push(key.replace( "band-name:" , '' ));
});
res.write( JSON.stringify(bands) );
res.end();
Hier ziehen wir alle Schlüssel aus Redis, die dem ersten Teil des Strings
entsprechen (wie z. B. das vorhin beschriebene "Bea * ") . Es gibt diese Da-
ten dann im JSON-Format aus. Die template.html verlinkt auf den jQuery-
Code, der nötig ist, um diese Funktion mit einem Autocomplete-Feature im
Suchfeld zu versehen.
Den Service erweitern
Das ist ein recht kleines Skript mit Kernfunktionen, die wir hier implementie-
ren. Sie werden es an vielen Stellen erweitern wollen. Beachten Sie, dass die
Empfehlungen nur Bands „erster Ordnung“ berücksichtigen (also nur Bands,
in denen die Bandmitglieder mitgespielt haben). Sie erhalten interessante
Ergebnisse, wenn Sie eine Query schreiben, die Bands zweiter Ordnung zu-
rückgibt etwa: g. V.filter{it.name=='Nine Inch Nails'}.out('member').
in('member').dedup. loop(3){ it.loops <= 2 }.name .
Sie werden auch bemerken, dass wir kein Formular anbieten, in dem man
Bandinformationen aktualisieren kann. Diese Funktionalität zu ergänzen,
ist recht einfach, weil wir den Befüllungs-Code für CouchDB bereits in popu-
late _ couch.js vorliegen haben und das Befüllen von CouchDB schlussend-
lich auch Neo4j und Redis konsistent hält, solange der graph _ sync.js -Service
läuft.
Wenn Sie gerne mit dieser Art polyglotter Persistenz herumspielen, können
Sie die Sache auch noch weiter treiben. Sie können ein Data-Warehouse in
PostgreSQL integrieren, 6 um diese Daten in ein Sternschema zu transformie-
ren - was andere Arten der Analyse erlaubt, etwa das am häufigsten gespielte
Instrument oder die durchschnittliche Zahl von Bandmitgliedern gegenüber
der Gesamtzahl der Instrumente. Sie können einen Riak-Server einbinden,
um Samples der Musik zu speichern, einen HBase-Server nutzen, um ein
Messaging-System aufzubauen, bei dem die Benutzer Likes/Dislikes nach-
6. http://en.wikipedia.org/wiki/Data_warehouse
Search WWH ::




Custom Search