カスタムURPの例(廃止予定)
カスタムの更新要求プロセッサー(URP)は、Apache Solr™ URPを拡張します。
DSE Searchには、Solr更新のプラグインAPIとCassandraDocumentReaderのプラグインのリリース済みバージョンが含まれています。プラグインAPIは、データが送信される前に、セカンダリ・インデックス作成APIからのデータを変換します。CassandraDocumentReaderのプラグインは、データベースからの結果データをDSE Searchに変換します。
注: DSEカスタムURPの実装は廃止されました。カスタムURPはほとんどの場合不要です。代わりに、DataStaxはフィールド入力/出力(FIT)トランスフォーマーのAPIを使用することをお勧めします。
アプリケーションで、インデックス・スキーマに従ってマップしてインデックスを作成する前に、APIを使用して検索ドキュメントを微調整することができます。
フィールド入力トランスフォーマー(FIT)の日付フィールド値には、末尾に「z」が必要です。
手順
APIを使用するには:
-
solrconfig.xmlでカスタムURPを構成します。
<dseUpdateRequestProcessorChain name="dse"> <processor class="com.datastax.bdp.search.solr.functional.DSEUpdateRequestProcessorFactoryExample"> </processor> </dseUpdateRequestProcessorChain>
-
Solr UpdateRequestProcessorを拡張するカスタムURPを使用するクラスを作成します。例を次に示します。
package com.datastax.bdp.search.solr.functional; import java.io.IOException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.datastax.bdp.search.solr.handler.update.CassandraAddUpdateCommand; import com.datastax.bdp.search.solr.handler.update.CassandraCommitUpdateCommand; import org.apache.solr.update.AddUpdateCommand; import org.apache.solr.update.CommitUpdateCommand; import org.apache.solr.update.processor.UpdateRequestProcessor; public class TestUpdateRequestProcessor extends UpdateRequestProcessor { protected final Logger logger = LoggerFactory.getLogger(TestUpdateRequestProcessor.class); public TestUpdateRequestProcessor(UpdateRequestProcessor next) { super(next); } public void processAdd(AddUpdateCommand cmd) throws IOException { if (cmd instanceof CassandraAddUpdateCommand) { logger.info("Processing Cassandra-actuated document update."); } else { logger.info("Processing HTTP-based document update."); } super.processAdd(cmd); } public void processCommit(CommitUpdateCommand cmd) throws IOException { if (cmd instanceof CassandraCommitUpdateCommand) { logger.info("Processing DSE-actuated commit."); } else { logger.info("Processing client-actuated commit."); } super.processCommit(cmd); } }
-
クラスをJARにエクスポートし、そのJARをこの場所に配置します。
- tarボール・インストール: install-location/resources/solr/lib
- パッケージ・インストール: /usr/share/dse/solr/lib
JARは自動的にCLASSPATHに追加されます。 -
実装をテストします。例を次に示します。
package com.datastax.bdp.search.solr.functional; import com.datastax.bdp.search.solr.handler.update.DSEUpdateProcessorFactory; import org.apache.solr.core.SolrCore; import org.apache.solr.update.processor.UpdateRequestProcessor; public class DSEUpdateRequestProcessorFactoryExample extends DSEUpdateProcessorFactory { SolrCore core; public DSEUpdateRequestProcessorFactoryExample(SolrCore core) { this.core = core; } public UpdateRequestProcessor getInstance( UpdateRequestProcessor next) { return new TestUpdateRequestProcessor(next); } }