In a system in which requirements remain fairly static, or at least predictable, the LucidWorks Enterprise user interface may be sufficient for managing your system. For more complex or dynamic systems, LucidWorks Enterprise provides programmatic, remote access to most high-level aspects of configuration and operation through the REST API.
Most web developers are familiar with the idea of manipulating HTTP requests. For example, your programmatic access to search itself is by making GET requests to Solr itself, as documented in the Solr Wiki; you may even be familiar with the idea of indexing data by making a POST request directly to Solr. In the case of the REST API, LucidWorks Enterprise uses GET and POST, as well as PUT and DELETE requests, to enable you to programmatically manage tasks such as creating and managing data sources and alerts, as well as monitoring the ongoing activities of your LucidWorks Enterprise system.
The results of a REST request depend not only on the type of request, but on whether you called it on an object or group of objects. REST requests work as follows:
GET: Used to get information on a single object, or to get a list of objects in a group.
POST: Used to create a new object.
PUT: Used to update an object or group of objects.
DELETE: As expected, used to delete an object or group of objects.
When you use REST requests with LucidWorks Enterprise (LWE), you send a JSON request to the endpoint specified for the object (or group) in question. The system then sends back the results as a JSON object. (Currently, LWE only recognizes JSON requests; this may change in the future.)
The LucidWorks Enterprise REST API uses the Core component, installed at http://localhost:8888/ by default. If you changed this location on install, be sure to change the destination of your REST requests.
When creating or updating a resource (using a POST or a PUT), you generally only need to include those entries in your map that you need to set. When LWE creates a resource, entries you omit will get their default values. When you update a resource, entries you omit will retain their previous values.
JSON primitives can be used and will be returned, but LWE also accepts string parsable equivalents. For example, both 4 or "4" are valid inputs for an integer type, but 4 will be returned by the REST API.
APIs that take a list will also take a single variable (for example, a list<string> accepts string) and treat it as a list of size 1.
For convenience, you can append ".json" to any method. For example, you can use an endpoint of /alerts/users/user_identifier/alerts/alert_id or /alerts/users/user_identifier/alerts/alert_id.json .
- Collections: groups of documents that are logically separate
- Activities: control schedules for resource-intensive operations
- Data Sources: the conduits by which data enters LucidWorks Enterprise
- Fields: how data from a single document is organized in LucidWorks Enterprise
- Info: information about the collection
- Index: interact with the index
- JDBC Drivers: ability to load arbitrary JDBC driver for database indexing
- Settings: many different query- and index-time settings
- Roles: manage mapping users to search filters to control access to documents
- Alerts: user notifications for saved searches