pg-search-sequelizeパッケージを使用して、映画と俳優のデータベースを検索する方法のデモンストレーション。
この例のデモをこちらでお試しください。
前提条件:Docker。 Dockerを使用したくない場合は、Postgresとnode.js 6.0.0以降がインストールされている必要があります。
Dockerでサーバーとデータベースを起動するには、実行してください。
. / init . shそれでおしまい。これで、ブラウザを開き、 http://localhost:3000/に移動できます。
http://localhost:3000/film/x-menに移動して検索をテストします。リリース年ごとに結果をフィルタリングするには、クエリをhttp://localhost:3000/film/x-men releaseYear:2003に変更します。リリース年フィルターをハードコード化しなかったことに注意してください。 pg-search-sequelizeパッケージによって自動的に提供されます。
データベースは非常に簡単です。 film 、 actor 、 film_actor 3つのテーブルしかありません。 pg-search-sequelizeを使用して、映画と俳優のデータから具体化されたビューを作成します。私たちは映画の名前を最高の重量、ディテール、キャストをより低い重量にし、残りの詳細は順番に続きます。重み付けシステムにより、検索結果をどのようにセットアップするかに応じて、関連性によってソートすることができます。私たちは映画名にキャスト名よりも高次に渡したので、「ワシントン」の検索クエリは映画「Man on Fire」の前に映画「ワシントンハイツ」の結果をもたらします。
次に、Materalized View Model in /modelsを定義し、 pg-search-sequelizeに登録して、検索機能を取得するようにします。
最後に、2つのAPI /film/:queryを公開し、ポート3000でExpressサーバーを開始します。
プロジェクトでこのパッケージを使用することに興味がある場合は、PG-Search-skeelizeにアクセスしてください。
気に入らなかったものがある場合、またはコメントや提案がある場合は、PG-Search-sequelizeの問題セクションでそれらを提出してください