.. _opensearch: OpenSearch Support ================== pycsw OpenSearch support is enabled by default. There are two ways to access OpenSearch depending on the deployment pattern chosen. OGC API - Records deployment ---------------------------- .. code-block:: bash http://localhost:8000/opensearch CSW legacy deployment --------------------- HTTP requests must be specified with ``mode=opensearch`` in the base URL for OpenSearch requests, e.g.: .. code-block:: bash http://localhost/pycsw/csw.py?mode=opensearch&service=CSW&version=2.0.2&request=GetCapabilities This will return the Description document which can then be `autodiscovered `_. OGC OpenSearch Geo and Time Extensions 1.0 ------------------------------------------ pycsw supports the `OGC OpenSearch Geo and Time Extensions 1.0`_ standard via the following conformance classes: - Core (GeoSpatial Service) ``{searchTerms}``, ``{geo:box}``, ``{startIndex}``, ``{count}`` - Temporal Search core ``{time:start}``, ``{time:end}`` Supported Query Parameters ^^^^^^^^^^^^^^^^^^^^^^^^^^ - ``q`` - ``time`` - ``bbox`` OGC OpenSearch Extension for Earth Observation ---------------------------------------------- pycsw supports the `OGC OpenSearch Extension for Earth Observation`_ standard via the following conformance classes: - Core Supported Query Parameters ^^^^^^^^^^^^^^^^^^^^^^^^^^ - ``eo:cloudCover`` - ``eo:instrument`` - ``eo:orbitDirection`` - ``eo:orbitNumber`` - ``eo:platform`` - ``eo:processingLevel`` - ``eo:productType`` - ``eo:sensorType`` - ``eo:snowCover`` - ``eo:spectralRange`` Mapping of non-19115 Queryable Mappings ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The following queryables are implemented as faceted keywords given they are not implemented in generic geospatial metadata standards: - ``eo:productType`` - ``eo:orbitNumber`` - ``eo:orbitDirection`` - ``eo:snowCover`` - ``eo:processingLevel`` This means metadata ingested into pycsw must have these fields implemented as keywords, as per the examples below: .. code-block:: xml eo:productType:S2MSI2A eo:orbitNumber:50 eo:orbitDirection:DESCENDING eo:snowCover:0.0 eo:procesingLevel:Level-2A .. code-block:: xml eo:productType:S2MSI2A eo:orbitNumber:50 eo:orbitDirection:DESCENDING eo:snowCover:0.0 eo:procesingLevel:Level-2A OpenSearch Temporal Queries Implementation ------------------------------------------ By default, pycsw's OpenSearch temporal support will query the Dublin Core ``dc:date`` property as a time instant/single point in time. To enable temporal extent search, set ``profiles=apiso`` which will query the temporal extents of a metadata record (``apiso:TempExtent_begin`` and ``apiso:TempExtent_end``). At the HTTP API level, time is supported via either ``time=t1/t2`` or ``start=t1&stop=t2``. If the ``time`` parameter is present, it will override the ``start`` and ``stop`` parameters respectively. .. _`OGC OpenSearch Extension for Earth Observation`: https://docs.ogc.org/is/13-026r9/13-026r9.html .. _`OGC OpenSearch Geo and Time Extensions 1.0`: https://www.ogc.org/standards/opensearchgeo