Running the Examples in Secure Mode
Create and Populate a Table in the Secure Oracle NoSQL Store
Execute the program LoadJsonExample in secure mode. For example,
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
Register the Store with the Secure Elasticsearch Cluster and Create a Full Text Index
From a client node configured for secure access to the Oracle NoSQL store, start an Admin CLI for the store. For example, from the host named clhost1, start the CLI as the user named FTS created and provisioned as described in Deploying and Configuring a Secure Oracle NoSQL Store,
On 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
Execute Secure Full Text Search Queries On Elasticsearch Indexed Data
From a client node configured for secure access to the Elasticsearch cluster such as the clhost1 node presented in Secure Elasticsearch using Sheild, execute queries like the following:
On 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"}}}}}'
Note:
The queries above can be sent to any of the nodes in the Elasticsearch cluster (eshost1, eshost2, or eshost3). Just be sure to specify the public certificate and private key corresponding to the particular node to which you send the query.