Demonstration, wie das pg-search-sequelize Paket verwendet wird, um eine Datenbank mit Filmen und Schauspielern zu durchsuchen.
Probieren Sie hier die Demo dieses Beispiels aus.
Voraussetzungen: Docker. Wenn Sie Docker nicht verwenden möchten, müssen Sie Postgres und Node.js 6.0.0 oder höher installiert haben.
Um den Server und die Datenbank mit Docker zu starten, rennen Sie:
. / init . sh Das war's. Jetzt können Sie Ihren Browser öffnen und zu http://localhost:3000/ navigieren.
Testsuche durch Navigieren zu http://localhost:3000/film/x-men . Um Ihre Ergebnisse nach Veröffentlichungsjahr zu filtern, ändern Sie Ihre Abfrage in http://localhost:3000/film/x-men releaseYear:2003 . Beachten Sie, dass wir den Filter des Veröffentlichungsjahres nicht hart erhoben haben. Es wird automatisch vom pg-search-sequelize Paket bereitgestellt.
Unsere Datenbank ist sehr einfach; Wir haben nur 3 Tabellen: film , actor und film_actor . Mit pg-search-sequelize erstellen wir eine materialisierte Ansicht aus den Film- und Schauspielerdaten. Wir geben den Filmnamen das höchste Gewicht, die Details und die Besetzung, die ein niedrigeres Gewicht erhalten, und die restlichen Details folgen in der Reihenfolge. Das Gewichtungssystem ermöglicht es, dass unsere Suchergebnisse je nach Einrichtung nach Relevanz sortiert werden. Da wir Filmnamen eine höhere Ordnung als Cast -Namen gegeben haben, würde eine Suchabfrage von "Washington" ein Ergebnis des Films "Washington Heights" vor "Man On Fire" ergeben, da die erste Suchanfrage im Filmnamen hat, während der zweite ihn in der Besetzung des Films hat.
Anschließend definieren wir unser materialisiertes Ansichtsmodell in /models und registrieren es bei pg-search-sequelize damit wir die Suchfunktionen erhalten.
Schließlich enthüllen wir zwei API /film/:query und starten den Express -Server auf Port 3000 .
Wenn Sie daran interessiert sind, dieses Paket in Ihren Projekten zu verwenden, besuchen Sie PG-Search-Sequelizize.
Wenn es etwas gibt, das Ihnen nicht gefallen hat oder wenn Sie Kommentare oder Vorschläge haben, senden Sie sie bitte im Abschnitt Ausgaben von PG-Search-Sequelize