製品をチェック

Smaregi Driver の30日間無償トライアルをダウンロード

 30日間の無償トライアルへ

製品の詳細

Smaregi アイコン Smaregi JDBC Driver 相談したい

商品、在庫、発送状況などのスマレジアカウントデータを組み込んだ強力なJava アプリケーションを迅速に作成して配布できます。

Apache Solr のData Import Handler でスマレジ のデータを差分更新で取り込んで検索利用

CData JDBC ドライバを使って、全文検索エンジンのApache Solr にスマレジ のデータをカンタンに取り込み。

杉本和也
リードエンジニア

最終更新日:2022-05-17
smaregi ロゴ

CData

jdbc ロゴ画像
Apache Solr ロゴ

こんにちは!リードエンジニアの杉本です。

Apache Solr https://lucene.apache.org/solr/は Apache ソフトウェア財団のLucene プロジェクトのサブプロジェクトとして開発されているオープンソースの全文検索エンジンです。

API・データストアや各種データを取り込むためのデータインポート(Data Import Handler)を備えているので、手軽に独自アプリケーションに検索エンジンを組み込むことができるようになっています。通常 Apache Solr はXML・CSV・JSON といったフォーマットやPDF、Word、HTML などのファイル、もしくはJDBC 経由でのRDB 接続で取得したデータのみが取り込み対象ですが、Apache Solr のJDBC のインターフェースにCData JDBC ドライバを用いることで、各API の仕様を意識せず DataImport を実行でき、Apache Solr のエンジンでスマレジ のデータを検索することができるようになります。 今回は Apache Solr が提供するデータインポート機能、Data Import Handler を使って、スマレジ のデータを取り込み、Apache Solr で検索が実施できるようにするための手順を紹介します。

Apache Solr へのスマレジ のデータのコアとスキーマを作成

  • Apache Solr を起動します。なお、今回は検証用途のためスタンドアロンで構成しています。
  • そして検証用となるコアを一つ追加しました。
  • > solr create -c CDataCore
  • 以下のURLで作成したCoreにアクセスできます。http://localhost:8983/solr/#/CDataCore/core-overview
  • 続いて取り込み先となるスキーマを定義しておきます。今回はスマレジ のいくつかの項目と合わせて、以下のフィールドを追加しました。LastModifiedDate がスマレジ にあれば、差分更新が可能です。該当するカラムがない場合には、後で出てくるdeltaQuery セクションは飛ばしてください。
  • Solr でスマレジ のデータのスキーマを定義
  • CData スマレジ JDBC Driver をインストールします。インストールが完了すると、以下のフォルダにJDBC Driver の本体であるjar ファイル(cdata.smaregi.jar、およびcdata.jdbc.smaregi.lic、試用版の場合は.lic ファイルは不要)が生成されます。これをApache Solr のフォルダに配置します。
    • CData JDBC: C:\Program Files\CData\CData JDBC Driver for Smaregi 2019J\lib
    • Apache Solr: solr-8.5.2\server\lib

これでドライバーの配置などの準備は完了です。

Apache Solr の Data Import Handler (DIH) にスマレジ のインポート定義を設定

それではデータ処理を担う機能であるDIH(DataImport Handler)の定義を追加しましょう。

  • まず作成したCore に含まれるConfig ファイを編集します。 DIH 実行に必要なjar ファイルの参照を追加し、DIH のRequestHandler 定義を追加します。 DIH の設定ファイルは「solr-data-config.xml」としました。
  • solr-data-config.xml
  • 続いて同じ階層に「solr-data-config.xml」を作成します。 今回はスマレジ から取引先の情報である一つテーブルを取り込む定義を作成してみました。 Driver のClass および接続URLはこちらを参考にしてみてください。
  • query でデータを取得するためのSQL文を定義しています。データモデルはスマレジ Driver のヘルプドキュメントを参照してください。deltaQuery・deltaImportQuery は差分更新時の条件と上書きインポート時のID 識別を定義しています。
  • 設定完了後、一度Solrを再起動します。
  • > solr stop -all > solr start

スマレジ のデータのDataImport の実行

再起動後、以下のURL からDataImport を実行できます。
http://localhost:8983/solr/#/CDataCore/dataimport//dataimport

Solr Data Import でスマレジ のデータをローディング

まず「full-import」、Entity から「テーブル名」を選択して、「Execute」してみます。

Solr でスマレジ のデータのFull-import を実行

登録された結果を「Query」画面から見てみると、各スキーマにデータが取り込まれていることが確認できました。

Solr でスマレジ のデータのFull-import を確認

次に差分更新であるDeltaQuery も試してみましょう。スマレジ 側のデータを書き換えてください。DataImport の画面から今度は「Delta-Import」を選択して、Execute を押してみます。

Solr でスマレジ のデータのDelta-Import を実行

正常に取り込みが完了すると、以下のようにレコードが更新されていることが確認できました。

Solr でスマレジ のデータのDelta-Import を確認

まとめ

このようにCData JDBC ドライバとSolr Data Import Handler を一緒に使うことで、簡単にSolr でスマレジ のデータをノーコードで連携し、全権検索に使うことが可能です。

是非、CData JDBC Driver for Smaregi 30日の無償評価版 をダウンロードして、お試しください。

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。