セキュア・モードでの例の実行
Sheildを使用したセキュアなElasticsearch、セキュアなOracle NoSQLストアのデプロイおよび構成およびElasticsearchへの全文検索公開証明書のインストールの付録で示されているステップを実行して、セキュアなOracle NoSQLストアとElasticsearchクラスタをデプロイしたと仮定すると、この項で示すコマンドを実行して、次の操作を実行できるようになっています。
セキュアなOracle NoSQLストアの表の作成と移入
セキュア・モードでプログラムLoadJsonExampleを実行します。次に例を示します。
java –classpath /opt/ondb/kv/lib/kvstore.jar:src es.table.LoadJsonExample
–store mystore
–host kvhost1
–port 5000
–file ~/examples/es/docs/senator-info.json
-table exampleJsonTable
-security /tmp/FTS-client.login
セキュアなElasticsearchクラスタへのストアの登録および全文索引の作成
Oracle NoSQLストアへのセキュアなアクセスが構成されているクライアント・ノードから、このストアの管理CLIを起動します。たとえば、clhost1という名前のホストから、セキュアなOracle NoSQLストアのデプロイおよび構成の説明に従って作成およびプロビジョニングされたFTSという名前のユーザーとしてCLIを起動します。
clhost1の場合
java -jar /opt/ondb/kv/lib/kvcli.jar runadmin
–host kvhost1
-port 5000
–store mystore
–security /tmp/FTS-client.login
Logged in admin as FTS
kv-> plan register-es
–clustername escluster
–host eshost1
–port 29100
–secure true
-wait
Executed plan 25, waiting for completion...
Plan 25 ended successfully
kv-> execute 'CREATE FULLTEXT INDEX jsonTxtIndex ON
exampleJsonTable (
jsonField.current{"type":"boolean"},
jsonField.party{"type":"string","analyzer":"standard"},
jsonField.duties.committe{"type":"string"},
jsonField.contrib{"type":"double"})';
Statement completed successfully
kv-> exit
Elasticsearchの索引付きデータに対するセキュアな全文検索問合せの実行
Sheildを使用したセキュアなElasticsearchで示されているclhost1ノードなど、Elasticsearchクラスタへのセキュアなアクセスが構成されているクライアント・ノードから、次のような問合せを実行します。
clhost1の場合
curl –k -E /tmp/elasticsearch-eshost1.pem
--key /tmp/elasticsearch-eshost1.pkey
–X GET 'http://eshost1:29100/_cat/indices'
curl –k -E /tmp/elasticsearch-eshost2.pem
--key /tmp/elasticsearch-eshost2.pkey
–X GET 'http://eshost2:29100/ondb.kvstore.examplejsontable.jsontxtindex/_mapping?pretty'
curl –k -E /tmp/elasticsearch-eshost3.pem
--key /tmp/elasticsearch-eshost3.pkey
–X GET 'http://eshost3:29100/ondb.kvstore.examplejsontable.jsontxtindex/_search?pretty'
curl –k -E /tmp/elasticsearch-eshost1.pem
--key /tmp/elasticsearch-eshost1.pkey
–X GET 'http://eshost1:29100/ondb.mystore.examplejsontable.jsontxtindex/_search?pretty'
'-d {query":{"bool":{
"must":{"match":{"jsonCol.party":"Democrat"}},
"must":{"match":"jsonCol.current":"true"}},
"must":{"range":{"jsonField.contrib":{"gte":"1000000.00","lte":20000000.00"}}},
"must":"match":{"jsonField.duties.committe":"Judiciary Apropriations"}}}}}'
ノート:
前述の問合せは、Elasticsearchクラスタの任意のノード(eshost1、eshost2またはeshost3)に送信できます。問合せの送信先となる特定のノードに対応する公開証明書と秘密キーを必ず指定してください。