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.