Apache Solr にAct-On のデータをインポートする方法
Apache Solr は、Apache Lucene 上に構築された人気のある高速なオープンソースのエンタープライズサーチソリューションです。
Apache Solr には、データベースやXML、CSV、JSON ファイルからデータをインポートできるData Import Handler(DIH)が搭載されています。CData JDBC Driver for Act-On と組み合わせることで、Act-On のデータを簡単にApache Solr にインポートできます。この記事では、CData JDBC Driver をApache Solr のData Import Handler で使用し、エンタープライズサーチ用にAct-On のデータをインポートする方法をステップバイステップで解説します。
Act-On インポート用のApache Solr コアとスキーマを作成する
- Apache Solr を起動し、コアを作成します。
> solr create -c CDataCore
この記事では、Solr はローカル環境でスタンドアロンインスタンスとして実行されており、次のURL でコアにアクセスできます:http://localhost:8983/solr/#/CDataCore/core-overview - インポートするAct-On のデータのカラムを表す「field」オブジェクトと、エンティティの一意キーで構成されるスキーマを作成します。Act-On にLastModifiedDate が存在する場合は、増分更新に使用されます。存在しない場合は、後述のdeltaquery を実行できません。スキーマはApache Solr が作成したmanaged-schema ファイルに保存します。
- CData Act-On JDBC Driver をインストールします。JAR ファイルとライセンスファイル(cdata.acton.jar とcdata.jdbc.acton.lic)をSolr ディレクトリにコピーします。
- CData JDBC JAR ファイル:C:\Program Files\CData\CData JDBC Driver for Act-On ####\lib
- Apache Solr:solr-8.5.2\server\lib
ActOnUniqueKey
これで、Solr でAct-On のデータを使用する準備が整いました。
Act-On からApache Solr へのインポートを定義する
このセクションでは、Data Import Handler の設定手順を説明します。
- 作成したコアのConfig ファイルを編集します。JAR ファイルの参照を追加し、DIH RequestHandler の定義を追加します。
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar" /> <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">solr-data-config.xml</str> </lst> </requestHandler> - 次に、同じ階層にsolr-data-config.xml を作成します。この記事ではAct-On からテーブルを取得しますが、カスタムSQL クエリを使用してデータをリクエストすることもできます。Driver クラスとサンプルJDBC 接続文字列は以下のサンプルコードにあります。
<dataConfig> <dataSource driver="cdata.jdbc.acton.ActOnDriver" url="jdbc:acton:"> </dataSource> <document> <entity name="Images" query="SELECT Id,ActOnColumn1,ActOnColumn2,ActOnColumn3,ActOnColumn4,ActOnColumn5,ActOnColumn6,ActOnColumn7,LastModifiedDate FROM Images" deltaQuery="SELECT Id FROM Images where LastModifiedDate >= '${dataimporter.last_index_time}'" deltaImportQuery="SELECT Id,ActOnColumn1,ActOnColumn2,ActOnColumn3,ActOnColumn4,ActOnColumn5,ActOnColumn6,ActOnColumn7,LastModifiedDate FROM Images where Id=${dataimporter.delta.Id}"> <field column="Id" name="Id" ></field> <field column="ActOnColumn1" name="ActOnColumn1" ></field> <field column="ActOnColumn2" name="ActOnColumn2" ></field> <field column="ActOnColumn3" name="ActOnColumn3" ></field> <field column="ActOnColumn4" name="ActOnColumn4" ></field> <field column="ActOnColumn5" name="ActOnColumn5" ></field> <field column="ActOnColumn6" name="ActOnColumn6" ></field> <field column="ActOnColumn7" name="ActOnColumn7" ></field> <field column="LastModifiedDate" name="LastModifiedDate" ></field> </entity> </document> </dataConfig> - query セクションで、Act-On からデータを選択するSQL クエリを設定します。deltaQuery とdeltaImportquery は、同じエンティティの2回目以降のインポートで増分更新を使用する際のID と条件を定義します。
- すべての設定が完了したら、Solr を再起動します。
> solr stop -all > solr start
Act-On のデータのDataImport を実行する
- 以下のURL からDataImport を実行します:
http://localhost:8983/solr/#/CDataCore/dataimport//dataimport
- 「full-import」コマンドを選択し、Entity からテーブルを選択して、「Execute」をクリックします。
- Query からインポート結果を確認します。
- deltaQuery を使用した増分更新を試してみましょう。元のAct-On データセットのデータを変更します。DataImport ウィンドウから今度は「delta-import」コマンドを選択し、「Execute」をクリックします。
- 増分更新の結果を確認します。
CData JDBC Driver for Act-On を使用することで、Act-On のデータのApache Solr への自動インポートを作成できます。250+ のCData JDBC Driver の無料30日間トライアルをダウンロードして、今すぐ始めましょう。