OJAI Search Plugin consists of the following two components: Search Plugin Service and Search Client.
Kafka Consumer listens Change Data Records and updates indices at ElasticSearch. To make the installation easier it can be distributed as Docker image for example.
Must be included as dependency to Java application. Can be represented as single Java class. Usage example:
Connection connection = DriverManager.getConnection("ojai:mapr:");
...
OjaiSearchClient clinet = new OjaiSearchClient(connection, "elastichostname:9300");
List<Document> documents = clinet.search("/apps/albums", new Match("Immortal"));
...
client.close();
Client makes search request to ElasticSearch, receives search results, that contain document's identifier and table path.
After that, client queries MapR-DB JSON Table via OJAI Driver to get actual JSON document. It can be published as Maven artifact or can be included to mapr-ojai-driver
artifact.
Also, system which uses OJAI Search Plugin must have the following components:
- ElasticSearch
It can be separate ElasticSearch cluster or it can be an instance running on one of MapR Cluster's nodes.
- MapR-DB JSON Tables
MapR-DB JSON Tables store actual JSON document, which will be searched via the Plugin.
- Changelog
MapR cluster must be properly configured. Tables must have the changelog relationship with the destination stream topic.