各製品の資料を入手。
詳細はこちら →Apache Solr のData Import Handler でe-Sales Manager のデータを差分更新で取り込んで検索利用
CData JDBC ドライバを使って、全文検索エンジンのApache Solr にe-Sales Manager のデータをカンタンに取り込み。
最終更新日:2022-05-17
この記事で実現できるe-Sales Manager 連携のシナリオ
こんにちは!リードエンジニアの杉本です。
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 のエンジンでe-Sales Manager のデータを検索することができるようになります。 今回は Apache Solr が提供するデータインポート機能、Data Import Handler を使って、e-Sales Manager のデータを取り込み、Apache Solr で検索が実施できるようにするための手順を紹介します。
Apache Solr へのe-Sales Manager のデータのコアとスキーマを作成
- Apache Solr を起動します。なお、今回は検証用途のためスタンドアロンで構成しています。
- そして検証用となるコアを一つ追加しました。
- 以下のURLで作成したCoreにアクセスできます。
http://localhost:8983/solr/#/CDataCore/core-overview
- 続いて取り込み先となるスキーマを定義しておきます。今回はe-Sales Manager のいくつかの項目と合わせて、以下のフィールドを追加しました。LastModifiedDate がe-Sales Manager にあれば、差分更新が可能です。該当するカラムがない場合には、後で出てくるdeltaQuery セクションは飛ばしてください。
- CData e-Sales Manager JDBC Driver をインストールします。インストールが完了すると、以下のフォルダにJDBC Driver の本体であるjar ファイル(cdata.esalesmanager.jar、およびcdata.jdbc.esalesmanager.lic、試用版の場合は.lic ファイルは不要)が生成されます。これをApache Solr のフォルダに配置します。
- CData JDBC: C:\Program Files\CData\CData JDBC Driver for ESalesManager 2019J\lib
- Apache Solr: solr-8.5.2\server\lib
> solr create -c CDataCore

これでドライバーの配置などの準備は完了です。
Apache Solr の Data Import Handler (DIH) にe-Sales Manager のインポート定義を設定
それではデータ処理を担う機能であるDIH(DataImport Handler)の定義を追加しましょう。
- まず作成したCore に含まれるConfig ファイを編集します。 DIH 実行に必要なjar ファイルの参照を追加し、DIH のRequestHandler 定義を追加します。 DIH の設定ファイルは「solr-data-config.xml」としました。
- 続いて同じ階層に「solr-data-config.xml」を作成します。 今回はe-Sales Manager から取引先の情報である一つテーブルを取り込む定義を作成してみました。 Driver のClass および接続URLはこちらを参考にしてみてください。
- query でデータを取得するためのSQL文を定義しています。データモデルはe-Sales Manager Driver のヘルプドキュメントを参照してください。deltaQuery・deltaImportQuery は差分更新時の条件と上書きインポート時のID 識別を定義しています。
- 設定完了後、一度Solrを再起動します。
solr-data-config.xml
> solr stop -all
> solr start
e-Sales Manager のデータのDataImport の実行
再起動後、以下のURL からDataImport を実行できます。
http://localhost:8983/solr/#/CDataCore/dataimport//dataimport

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

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

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

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

まとめ
このようにCData JDBC ドライバとSolr Data Import Handler を一緒に使うことで、簡単にSolr でe-Sales Manager のデータをノーコードで連携し、全権検索に使うことが可能です。
是非、CData JDBC Driver for ESalesManager 30日の無償評価版 をダウンロードして、お試しください。