Apache Solr のData Import Handler でe-Sales Manager データを差分更新で取り込んで検索利用

詳細情報をご希望ですか?

無償トライアル:

ダウンロードへ

製品の詳細情報へ:

e-Sales Manager Remix JDBC Driver

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



CData JDBC Driver for e-Sales Manager を使って、全文検索エンジンのApache Solr に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 Drivers を用いることで、各API の仕様を意識せず DataImport を実行でき、Apache Solr のエンジンでe-Sales Manager データを検索することができるようになります。 今回は Apache Solr が提供するデータインポート機能、Data Import Handler を使って、e-Sales Manager データを取り込み、Apache Solr で検索が実施できるようにするための手順を紹介します。

※製品について詳しい情報をご希望の方は以下からお進みください。

Apache Solr へのe-Sales Manager データのコアとスキーマを作成

  • Apache Solr を起動します。なお、今回は検証用途のためスタンドアロンで構成しています。
  • そして検証用となるコアを一つ追加しました。
  • > solr create -c CDataCore
  • 以下の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

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

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
                            
                        
    
                    
                
  • 続いて同じ階層に「solr-data-config.xml」を作成します。 今回はe-Sales Manager から取引先の情報である一つテーブルを取り込む定義を作成してみました。 Driver のClass および接続URLはこちらを参考にしてみてください。
  •                 
                        
                        
                            
                             
                             
                                
                                    
                                    
                                    
                                    
                                    
                                    
                                    
                                    
                                                                   
                                
                            
                        
                    
                
  • query でデータを取得するためのSQL文を定義しています。データモデルはe-Sales Manager Driver のヘルプドキュメントを参照してください。deltaQuery・deltaImportQuery は差分更新時の条件と上書きインポート時のID 識別を定義しています。
  • 設定完了後、一度Solrを再起動します。
  • > 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 Driver とSolr Data Import Handler を一緒に使うことで、簡単にSolr でe-Sales Manager データをノーコードで連携し、全権検索に使うことが可能です。

是非、CData JDBC Driver for e-Sales Manager 30日の無償試用版 をダウンロードして、お試しください。