Changeset Publisher

Summary

Until the advent of the data tool, most clients could follow this simple recipe to integrate their data with the Discovery Search Engine. New clients should integrate their data with the data tool. For more information on the data tool, refer to Data Tool.

Support for the builtin changeset publisher will be limited in future releases. It should be considered a deprecated feature.

  1. Create de-normalized views of your searchable entities
  2. Write or re-use a changeset publisher on top of those views.
  3. Configure the Discovery Search Engine to pull data from that changeset publisher as a feed.

De-normalized views

De-normalized views should be created for each searchable entity with the following constraints.

  • Each view needs an id column (string or numeric) and a last modified column (date/time).
  • The ids should be unique across all the views. If you have multiple views then the ids should have a suffix appended to them to make them unique.
  • If any columns contain multiple values they should be converted to a delimited string (e.g. “green,orange,blue” or “green orange blue”). An additional view is required to track deletes, this need only contain the id and last modified columns.

The views are a great integration point as it allows you to directly see the data that is available to the engine.

Changeset publisher

A changeset publisher is a process that is exposed as a single URL. This URL is configured as feed for the Discovery Search Engine, which then polls it on a periodic basis.

You can use the Discovery Data Tool or you can implement one yourself.

Configuring feeds

The Discovery Search Engine can be configured to pull data from a changeset publisher as a feed.

You can enter the information into discovery.properties so that it will get picked up on restart.

feed = http://example.com/changeset.php?profile=production
feed-interval = 300000

Or you can go to the Admin tab in the web interface and enter the feed information there. Note that feed settings in discovery.properties are read once and then stored persistently in the discovery.settings file. Any further changes should be made via the Admin tab in the web interface.