ODataV4Search

ODataV4Search#

class eodag.plugins.search.qssearch.ODataV4Search(provider, config)[source]#

A specialisation of a QueryStringSearch that does a two step search to retrieve all products metadata. All configuration parameters of QueryStringSearch are also available for this plugin. In addition, the following parameters can be configured:

Parameters:
  • provider (str) – provider name

  • config (PluginConfig) –

    Search plugin configuration:

    • per_product_metadata_query (bool): should be set to true if the metadata is not given in the search result and a two step search has to be performed; default: false

    • metadata_pre_mapping (MetadataPreMapping) : a dictionary which can be used to simplify further metadata extraction. For example, going from $.Metadata[?(@.id="foo")].value to $.Metadata.foo.value. It has the keys:

    • free_text_search_operations: (optional) A tree structure of the form:

      # noqa: E800
      <search-param>:     # e.g: $search
          union: # how to join the operations below (e.g: ' AND ' -->
              # '(op1 AND op2) AND (op3 OR op4)')
          wrapper: # a pattern for how each operation will be wrapped
                  # (e.g: '({})' --> '(op1 AND op2)')
          operations:     # The operations to build
          <opname>:     # e.g: AND
              - <op1>    # e.g:
                      # 'sensingStartDate:[{start_datetime}Z TO *]'
              - <op2>    # e.g:
                  # 'sensingStopDate:[* TO {end_datetime}Z]'
              ...
          ...
      ...
      

      With the structure above, each operation will become a string of the form: (<op1> <opname> <op2>), then the operations will be joined together using the union string and finally if the number of operations is greater than 1, they will be wrapped as specified by the wrapper config key.

__init__(provider, config)[source]#
Parameters:

Methods

__init__(provider, config)

build_query_string(collection, query_dict)

Build The query string using the search parameters

build_sort_by(sort_by_arg)

Build the sorting part of the query string or body by transforming the sort_by argument into a provider-specific string or dictionary

clear()

Clear search context

collect_search_urls([prep])

Build paginated urls

count_hits(count_url[, result_type])

Count the number of results satisfying some criteria

discover_collections(**kwargs)

Fetch collections list from provider using discover_collections conf

discover_collections_per_page(**kwargs)

Fetch collections list from provider using discover_collections conf using paginated kwargs["fetch_url"]

discover_queryables(**kwargs)

Fetch queryables list from provider using discover_queryables conf

do_search([prep])

A two step search can be performed if the metadata are not given into the search result

get_assets_from_mapping(provider_item)

Create assets based on the assets_mapping in the provider's config and an item returned by the provider

get_collection_cfg_dates([start_default, ...])

Get start and end dates from the collection configuration.

get_collection_cfg_value(key[, default])

Get the value of a configuration option specific to the current collection.

get_collection_def_params(collection[, ...])

Get the provider collection definition parameters and specific settings

get_metadata_mapping([collection])

Get the plugin metadata mapping configuration (collection specific if exists)

get_metadata_search_url(entity)

Build the metadata link for the given entity

get_provider_collections(prep, **kwargs)

Get the _collection(s) / provider collection(s) to which the product belongs

get_sort_by_arg(kwargs)

Extract the sort_by argument from the kwargs or the provider default sort configuration

list_queryables(filters, ...[, collection, ...])

Get queryables

map_collection(collection, **kwargs)

Get the provider collection from eodag collection

normalize_results(results, **kwargs)

Build EOProducts from provider results

query([prep])

Perform a search on an OpenSearch-like interface

queryables_from_metadata_mapping([...])

Extract queryable parameters from collection metadata mapping.

validate(search_params, auth)

Validate a search request.

Attributes

extract_properties

plugins

auth

next_page_url

next_page_query_obj

total_items_nb

need_count