onestop

OneStop is a data discovery system being built by CIRES researchers on a grant from the NOAA National Centers for Environmental Information. We welcome contributions from the community!

This project is maintained by cedardevs

Operator Documentation Home

Estimated Reading Time: 5 minutes

CSW & OpenSearch

Overview

Catalog Services for the Web and OpenSearch APIs for the records in OneStop are provided via the geoportal-search module of the Geoportal project.

Installation

The geoportal-search application is a war file which can be run in any java servlet container. There are two files inside the war that need to be modified in order to a) point it at your custom elasticsearch and b) customize the searchable fields based on your index.

Docker

Our Dockerfile creates an image that connects to the OneStop elasticsearch, which it assumes to be running at elasticsearch:9200. The image is published to the docker hub with the tag cedardevs/onestop-geoportal-search.

To simply run the image, use:

docker run cedardevs/onestop-geoportal-search

For an example of running the whole system using Docker Compose, see our docker-compose.yml file.

Manual

The following is a list of steps to set up and customize geoportal-search to point to the OneStop index. For more details, see Geoportal’s wiki on the subject.

  1. Download just the geoportal-search zip from the latest release
  2. Unzip it, and then unzip the war inside it so that you can edit files inside the war
  3. Inside the war, modify WEB-INF/classes/gs/config/Config.js to:
    1. Add an additional “target”, like:
       var targets = {
         ...
         "onestop": gs.Object.create(gs.target.elastic.CustomElasticTarget).mixin({
       "searchUrl": "http://<onestop elasticsearch host:port>/search/collection/_search"
         })
       };
      
    2. Set the “defaultTarget” to point to it:
       defaultTarget: {writable: true, value: "onestop"}
      
    3. There is an example Config.js file in the repository.
  4. Inside the war, modify WEB-INF/classes/gs/target/elastic/CustomElasticSchema.js to map searches onto the OneStop index.
    • This is a non-trivial exercise which requires support from ESRI to do correctly. This is we’ve come up with so far: CustomElasticSchema.js
  5. Now deploy the exploded war (or re-zip it if you prefer) into your favorite servlet container, e.g. into $CATALINA_BASE/webapps/geoportal-search for a Tomcat installation.

Top of Page