Oracle NoSQL DatabaseへのElasticsearchの登録

Oracle NoSQL Databaseを使用してElasticsearchクラスタにテキスト索引を作成するには、register-esという名前のplanコマンドを使用して、必要なクラスタをOracle NoSQL Databaseストアに登録する必要があります。このことはregister-es計画によって実行し、このとき、Elasticsearchクラスタの名前、そのクラスタ内のいずれかのホストの名前、およびそのホストが接続リクエストをリスニングするHTTPポートを指定します。具体的には、register-es計画のコマンドの形式は次のようになります。
plan register-es 
        –clustername <name> 
        -host <host|ip> 
        -port <http port> 
        -secure <true|false> 
        [-wait] 
        [-force]
たとえば、Elasticsearchクラスタが、elasticsearchという名前(デフォルト)で、ローカル・ホスト上で稼働しているノードを含み、デフォルトのHTTPポート(9200)をリスニングしている場合、Oracle NoSQL Database管理コマンドライン・インタフェース(管理CLI)から次のコマンドを実行します。
kv-> plan register-es 
        –clustername elasticsearch 
        –host 127.0.0.1 
        –port 9200 
        –secure false 
        -wait

Executed plan 22, waiting for completion...
Plan 22 ended successfully

注意:

register-es計画が実行されるとき、以前のNoSQLストア・インスタンスと現在のElasticsearchクラスタの間の登録に基づいて作成された索引が、コマンドに指定されたElasticsearchクラスタにすでに含まれている場合、計画は失敗し、エラー・メッセージが表示されます。このような索引は失効した索引と呼ばれ、このような失効した索引が出現すると計画が失敗します。これは、現在Elasticsearchクラスタの状態で保持されている索引が、元の登録に基づいて以前に作成されたストアに関連付けられているためです。これらの既存の索引はElasticsearchクラスタの状態の一部ですが、新しいストア・インスタンスの状態の一部ではありません。新しいストア・インスタンスに、クラスタ内に新しい索引を作成できる新しい登録の作成を許可すると、ストアで保持される状態とElasticsearchで保持される状態の間で非一貫性および競合が発生し、エラー状態になることがあります。

このようなエラー状態を回避するために、新しいストア・インスタンスがElasticsearchクラスタへの新しい登録のリクエストを受信したとき、そのクラスタに、以前のストア・インスタンスによって作成された登録に関連付けられた索引が含まれている場合、そのリクエストは拒否されます。ただし、forceフラグが指定されている場合は除きます。register-esコマンドにforceフラグが指定されている場合、Elasticsearchがまずすべての失効した索引を削除するようにストアがリクエストします。その索引が正常に削除された後にのみ、新規ストア・インスタンスとElasticsearchクラスタの間に登録が作成されます。

登録処理中に、ストアの管理サービス(または単に管理)は、register-esコマンド引数で指定されたElasticsearchノードの存在(およびネットワーク・パス)を検証し、そのノードから、Elasticsearchクラスタを構成するすべてのノードの接続情報の完全なリストを取得します。この情報は、管理者の状態に格納され、Oracle NoSQL Databaseストアのすべてのノードに配布されます。Elasticsearchクラスタのノード数が(ノードまたはネットワークの障害、クラスタの再構成などにより)大幅に変更された場合は、register-esコマンドを繰り返してOracle NoSQL DatabaseのElasticsearchノード接続のリストを更新できます。

register-es計画を正常に実行した後、次の方法で管理CLIからshow parametersコマンドを実行し、Oracle NoSQL Databaseストアが、必要なElasticsearchクラスタに実際に登録されていることを確認できます。
show parameters –service <storage node id>
show parametersコマンドは、登録に成功した場合に、Elasticsearchクラスタの名前とともに、そのクラスタを構成しているノードのホスト名またはIPアドレス(あるいはその両方)が含まれる、指定したストレージ・ノードのプロパティのリストを表示します。show parametersコマンドを実行すると、searchClusternameおよびsearchClusterMembersという名前のプロパティの値からその情報が得られます。次に例を示します。
kv-> show parameters -service sn1

capacity=1
haHostname=localhost
haPortRange=5005,5007
hostname=localhost
memoryMB=0 
mgmtClass=oracle.kv.impl.mgmt.NoOpAgent 
mgmtPollPort=0
 
mgmtTrapPort=0
 
numCPUs=8
 
registryPort=5000
 
rnHeapMaxMB=0
 
rnHeapPercent=85
 
rootDirPath=./kvroot 
searchClusterMembers=127.0.0.1:9200 
searchClusterName=elasticsearch
serviceLogFileCount=20
serviceLogFileLimit=2000000
storageNodeId=1

systemPercent=10