How-To Guide for Implementing ESIP Federated Search Servers

From Federation of Earth Science Information Partners


ESIP Federated Search is a simple framework for doing a federated (distributed) query among participating members for Earth science data. It is based on the OpenSearch convention for distributed searches, which centers around OpenSearch Description Documents. These XML documents include a template that shows how to construct a URL in order to execute a query against a particular search engine.

The ESIP Federated Search includes certain conventions to support a two-step dataset/granule (file) query. In the first step, a keyword query (and sometimes space-time criteria) is issued for datasets. In the second step, each selected dataset is queried for granules matching space-time (and possibly keyword) criteria. [image:esip_2step.png] The key element linking the two steps is an OpenSearch Description document for each dataset which describes how to do the granule (file) search for that dataset.

What Do I Need for an ESIP Federated Search Server?

In a nutshell, you need four things:

  1. A dataset search engine that supports at least keyword (free-text) search, and optionally space-time constraints
  2. An OpenSearch Description Document describing the dataset search engine
  3. A granule-level search engine supporting space-time query
  4. An OpenSearch Description Document for each dataset that describes the granule-level search template for that dataset

Let's look at each of these in detail.

Dataset Search Engine

The Dataset Search Engine should return an Atom document with the dataset results.

<?xml version="1.0"?>
<feed xmlns="" xmlns:opensearch="" xmlns:georss="" 
            xmlns:geo="" xmlns:time="">
<author><name>GES DISC</name><email>[email protected]</email></author>
<title>Mirador collection results for Monoxide</title>
<subtitle type="html">Monoxide (distributed by GES DISC)
<link rel="self" href=""/>
<link rel="" href=""/>
<author><name>GES DISC</name><email>[email protected]</email></author>
<title>MLS/Aura L2 Carbon Monoxide (CO) Mixing Ratio (ML2CO) </title>
<link href=",-180),(90,180)&location=(-90,-180),(90,180)&searchType=Location&event=&startTime=2009-10-10&endTime=2009-10-11 23:59:59&search=&CGISESSID=f408c488319554acd03731525a55f5a8&nr=4&temporalres=1%20Day(s)&prodpg= L2 Carbon Monoxide (CO) Mixing Ratio&granulePresentation=ungrouped" rel=""/>
<summary type="html">Dataset:ML2CO.002(1)</summary>
<link rel="search" type="application/opensearchdescription+xml" title="ML2CO.002" href=""/>
<link rel="enclosure" type="text/html" href="" title="/OpenSearch/mirador_opensearch_ML2CO.002.xml info"/>