Oracle NoSQLストアからのElasticsearchの登録解除

Oracle NoSQL Databaseは、1つのストア、1つのElasticsearchクラスタのポリシーを実装しています。つまり、特定のストアを複数のElasticsearchクラスタに同時に登録できません。このポリシーは登録モデルで表されます。Oracle NoSQL DatabaseへのElasticsearchの登録を参照してください。したがって、ストアが現在1つのElasticsearchクラスタに登録されている場合に、2つ目のクラスタに登録するには、最初に現在の登録を非アクティブ化するか、登録解除する必要があります。これを行うには、次のderegister-es計画を実行します。

plan deregister-es [-wait]

ノート:

1つのストア、1つのクラスタのポリシーのため、deregister-esコマンドは引数をとりません。

登録に基づいて作成されたすべての索引が最初にElasticsearchクラスタから削除されていないかぎり、ストアはその登録を非アクティブ化できません。これを行うには、ストアによって作成され、ストアが登録されているElasticsearchクラスタに存在する全文索引ごとに、DROP INDEXコマンドを実行します。つまり、管理CLIから、索引ごとに次の形式のコマンドを実行する必要があります。

execute 'DROP INDEX [IF EXISTS] <index> ON <table>';

ElasticsearchクラスタはOracle NoSQL Databaseストアとは別に作成、メンテナンスおよび管理されるため、そのクラスタには、Elasticsearch APIを使用して、ストアによる制御の外部で作成された索引が含まれていることがあります。この種の索引は、ストアには認識されない(ストアの状態にない)ため、クラスタでのストアの登録を非アクティブ化するためにクラスタから削除する必要はありません。deregister-esコマンドを正常に実行するには、Elasticsearchクラスタ内でOracle NoSQLのCREATE FULLTEXT INDEXコマンドを使用して作成された索引のみを削除する必要があります。

ストアによって作成された全文索引がクラスタにまだ含まれていることでderegister-esコマンドが失敗すると、コマンドの出力には、削除する必要がある索引の名前が表示されます。次に例を示します。
kv-> plan deregister-es –wait
Cannot deregister ES because these text indexes exist:

mytestIndex
JokeIndex

kv-> execute 'DROP INDEX mytestIndex ON myTable';
Plan 16 completed successfully

kv-> execute 'DROP INDEX JokeIndex ON myTable';
Plan 17 completed successfully

kv-> plan deregister-es –wait
Plan 18 completed successfully

ストアが実際にElasticsearchクラスタに登録されていない状態になったかどうかを確認するために、show parametersコマンドを再度実行して、その出力を調べることができます。

ノート:

Oracle NoSQL Databaseに存在できる索引タイプは、標準(つまりセカンダリ索引)とテキスト索引(全文検索用)の2つがあります。索引の作成または削除に関しては、索引の作成には、(作成する索引のタイプを区別するために)個別の文が必要ですが、いずれのタイプの索引の削除にも、同じDROP INDEX文が使用されます。テキスト索引に適用する場合は、前述のようなDROP INDEXコマンドによって、関連付けられたOracle NoSQL Database表から索引の移入が停止されるだけでなく、Elasticsearchからマッピングおよび関連するすべてのドキュメントが削除されます。