OpenSearch allows to query EuDML index  in a machine way.

The query has a form:{searchQuery}&startIndex={startIndex?}&count={count?}&format={format}


  • searchQuery - the search query in CQL (details below)
  • startIndex - the index of the first search result (offset) (optional)
  • count - number of search results (optional)
  • format - one of rss, xml, html (required)

The exact form of response can be seen by using the service.

SearchQuery is accepted in CQL ( language. Most of this language syntax is supported.

General format of the searchQuery is "fieldName operator term(s)", where:

fieldName can be one of:

  • all - search within all data
  • defName - search within titles
  • defDescription - search within abstracts
  • authorCoauthorName - search within authors' names
  • language - search within languages (ISO 639-1 code)
  • journalName - search within journal names
  • published - search within dates of publication
  • id - search by identifiers

operator can be one of:

"=" ("==") - phrase query
EXAMPLE: defName = "Riemann–Stieltjes integral"
"=/exact" - phrase query matching only whole values
EXAMPLE: defName =/exact "the proof book 1"
"any" - search for any of given terms (like boolean OR)
EXAMPLE: defDescription any "integral ring"
"all" - search for all of given terms (like boolean AND)
EXAMPLE: defDescription all "integral ring"
"within" - search for terms within given bounds (inclusive)
EXAMPLE: published within "2001 2004"
"=/id" - special id query
EXAMPLE: id =/id "urn:eudml:doc:10345"
">" (">=") - greater then (greater or equals)
EXAMPLE: published >= 2002
"<" ("<=") - less than (less or equals)
EXAMPLE: published < 2002
"<>" - less or greater
EXAMPLE: published <> 2002

Search clauses can be combined into boolean queries using "and", "or", "not" connectives.

EXAMPLE: (defName = integral or defName all "physics nuclear") and published > 2002 not defDescription any "weak short"

Search results can be ordered.

"sortBy" - accepts multiple sort fieldNames, placed at the end of the query
EXAMPLE: defName=mathematics sortBy published defName
"sort.descending" - descending order, "sort.ascending" - ascending order
EXAMPLE: defName=mathematics sortBy published/sort.ascending defName/sort.descending