WEB制作例
pc.pureitem.com...
YahooおよびRakutenが提供しているAPIを利用して商品情報を取得し、これを元に商品検索や情報の表示をしています。
閲覧時の構成
クライアントが閲覧するときのサーバー側の構成は次の通りです。
クライアント
- →←
-
サーバー
-
nginx
サーバー側フロントエンド
静的なファイルの供給
- ↑↓
-
nodeアプリケーション
商品情報の選択
ページの生成
- ↑↓
-
sqliteデータベース
商品情報の保持・供給
-
バッチ処理
Yahoo,Rakutenそれぞれについて1日に1回、次のようなバッチ処理をしてデータを格納しています。
空の一時データベースを作成する
- ▼
APIにより商品情報を取得し、一時データベースに格納する
- ▼
テキストから単語を抽出し、辞書と索引を生成して一時データベースに格納する
- ▼
一時データベースを本番データベースに上書きコピーする
- ▼
トップページなど静的なページを生成する
- 現在のところ上記の様に毎回新規にデータベースを作り直していますが、差分データのみの処理も検討しています。
- 形態要素解析ソフトのmecabを利用して単語を抽出しています。そのうち名詞のみを辞書に格納しています。mecabが解析時に参照する辞書はデフォルトのものをそのまま利用していますが、単語の追加や別辞書の利用も検討してます。
- mecabは外部ブログラムですがテキストごとに起動するようなことはせずに、一度起動した後はnodeのstream機能を利用してmecabの入出力を処理しています。これによりオーバーヘッドが大分軽減しています。