OpenSearch allows to query EuDML index in a machine way.
The query has a form:
http://eudml.org/api/search?q={searchQuery}&startIndex={startIndex?}&count={count?}&format={format}
where:
- 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 (http://www.loc.gov/standards/sru/specs/cql.html) 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:
- STANDARD OPERATORS
- "=" ("==") - 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"
- NUMERIC OPERATORS
- ">" (">=") - 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.
- SORTING OPERATOR
- "sortBy" - accepts multiple sort fieldNames, placed at the end of the query
- EXAMPLE: defName=mathematics sortBy published defName
- SORTING MODIFIERS
- "sort.descending" - descending order, "sort.ascending" - ascending order
- EXAMPLE: defName=mathematics sortBy published/sort.ascending defName/sort.descending