Skip to content

Toro Cloud Dev Center


examples package: Solr search indices

Search indices play a vital role in Martini. Tracker uses Apache Solr to index service payloads, and the invoke monitor can use Solr to log service invokes, which can then be used to compute invocation costs. Aside from these, custom search indices can be created and linked to your packages to store and index additional data1 so that you may use them in your applications, or to create reports. Martini also includes the APIs necessary to store and search for data from a search index.

The examples package shows how you can use Functions from the Solr class and HTTP client services to index and/or query data from a custom search index, the Tracker search index, or the invoke monitor search index. Example services are written in Gloop and can be found under the solr code directory.

Tracker and invoke monitor services

The following services below are present both in the solr.customTrackerSearch and solr.customMonitorSearch packages, and demonstrate how to query the Tracker and invoke monitor search indices, respectively.

Service Name Description
ListFacetCountEndpoint.gloop Queries the Solr index and generates a facet count.
ListFacetTermsEndpoint.gloop Lists all the terms under the specified facet field.
ListPivotFacetEndpoint.gloop Queries the Solr index and generates a table summarizing the results.
ListStatisticsEndpoint.gloop Queries the Solr index and generates statistics.
GetFacetCountEndpoint.gloop Similar to the List Face Count API, but limits to a single facet field.
GetStatisticsEndpoint.gloop Similar to List Statistics API, but limits to a single facet field.
RangeFacetEndpoint.gloop Uses range faceting on a date field or a numeric field that supports ranged queries.
RequestHandlerEndpoint.gloop Demonstrates the use of the Martini's extended Solr API.

Sending Solr queries from Gloop

The Solr Search API exposes endpoints for a variety of Solr operations. In order to do searches on the Solr server, our example services above send queries via HTTP requests.

Indexing operations

The Tracker class contains functions for retrieving, adding, and querying Tracker documents programmatically.

Custom search index services

The following services under solr.customSolrCore demonstrate how to add and query documents from custom search indices:

Service Name Description
MovieIndexer.gloop Adds a new document to the custom Solr movie core.
MovieSearcher.gloop Queries the custom Solr movie core index.

Try it!

In the Navigator, expand the examples package and navigate to the code folder, then expand the solr package. This package contains files and directories as shown below:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
examples
├── ...
└── code
    └── solr
        ├── config
        │   ├── CreateAdminUser.gloop
        │   └── DeleteAdminUser.gloop
        ├── customMonitorSearch
        │   ├── GetFacetCountEndpoint.gloop
        │   ├── GetStatisticsEndpoint.gloop
        │   ├── ListFacetCountEndpoint.gloop
        │   ├── ListFacetTermsEndpoint.gloop
        │   ├── ListPivotFacetEndpoint.gloop
        │   ├── ListStatisticsEndpoint.gloop
        │   ├── RangeFacetEndpoint.gloop
        │   └── RequestHandlerEndpoint.gloop
        ├── customSolrCore
        │   ├── MovieIndexer.gloop
        │   ├── MovieSearcher.gloop
        │   └── MovieSolrAPI.groovy
        └── customTrackerSearch
            ├── GetFacetCountEndpoint.gloop
            ├── GetStatisticsEndpoint.gloop
            ├── ListFacetCountEndpoint.gloop
            ├── ListFacetTermsEndpoint.gloop
            ├── ListPivotFacetEndpoint.gloop
            ├── ListStatisticsEndpoint.gloop
            ├── RangeFacetEndpoint.gloop
            └── RequestHandlerEndpoint.gloop

Open and run any of the services under solr.customMonitorSearch, solr.customSolrCore, and solr.customTrackerSearch to inspect their contents and observe how they work. Every service has been decorated with comments2 so you can easily tell how to invoke it, what output to expect, and the purpose of each of its steps.

Explanation

The example services that query the Monitor and Tracker search indices use HTTP client services to direct the queries to the Solr server. The response received by the Gloop service will then be converted to a Gloop model.

You can query custom Solr indices using HTTP calls, too!

All search indices can be managed using Martini's extended Solr Search API.

Meanwhile, example services for custom search indices show how to add and query documents via Solr functions.


  1. Possibly from your own applications. 

  2. Open the Gloop service file to see comments. Make sure comments are also not hidden.