DDOAJ Metadata Studio

Поиск в DOAJ API: синтаксис запросов и поля

Обновлено:

Поиск DOAJ API работает на Elasticsearch и принимает запросы в синтаксисе Lucene. Документация DOAJ описывает его кратко, а часть особенностей приходится выяснять опытом. Здесь собрано всё нужное для запросов к статьям и журналам, с примерами, проверенными на живом API.

Адреса и параметры

GET https://doaj.org/api/v4/search/articles/{запрос}?page=1&pageSize=100&sort=…
GET https://doaj.org/api/v4/search/journals/{запрос}?page=1&pageSize=100&sort=…

Основы синтаксиса

Что нужноПример
Поиск по всем полямmetamaterial
Поиск в конкретном полеbibjson.title:"phase demodulator"
Логика и скобкиbibjson.keywords:"open access" OR bibjson.keywords:"open science"
Исключениеissn:1810-3189 AND NOT _exists_:index.doi
Диапазонbibjson.year:[2022 TO 2024]
Поле заполнено / не заполнено_exists_:bibjson.abstract, NOT _exists_:bibjson.keywords
Точное совпадение всего значенияbibjson.journal.title.exact:"Journal of Physics"
Все записи*

Поля указываются через точку, как в JSON записи: bibjson.author.name, bibjson.journal.volume. Без .exact поиск идёт по словам: bibjson.journal.title:"Journal of Science" найдёт и «Journal of Science and Technology».

Сокращения

Для частых полей DOAJ принимает короткие имена — но только для поиска по значению, а .exact и _exists_ с ними не работают.

СтатьиЖурналы
title: abstract: doi: issn: publisher:title: issn: publisher: license: username:

DOI можно искать как есть — DOAJ сам экранирует слеш, — но надёжнее брать его в кавычки: doi:"10.18469/1810-3189.2022.25.4.122-128".

Сортировка

sort=created_date:desc        — сначала новые в DOAJ
sort=last_updated:desc        — недавно изменённые
sort=title:asc                — по названию
sort=bibjson.year.exact:desc  — по году публикации
sort=issn:asc                 — журналы по ISSN

По году нужно сортировать именно через bibjson.year.exact: sort=bibjson.year:desc возвращает ошибку.

Что запрещено

Чтобы запросы не перегружали сервер, DOAJ отклоняет:

Неочевидные ловушки

ЛовушкаКак правильно
_exists_:doi всегда ложно — поля doi нет, это сокращение_exists_:index.doi или bibjson.identifier.type:doi
Страницы при загрузке лежат в bibjson.journal.start_page, а поиск по этому полю ничего не находитИскать по bibjson.start_page и bibjson.end_page
index.country:RU и index.language:RU ничего не находятВ index.* — английские названия: index.country:"Russian Federation", index.language:Russian. Коды — в bibjson.journal.country, bibjson.language
Логические поля и флаги в разном форматеbibjson.apc.has_apc:false, но index.has_apc:No
Название журнала не находится по-английскиОсновное название может быть на национальном языке; английское — в bibjson.alternative_title (у журналов)
publisher: и license: для журналов часто ничего не находятbibjson.publisher.name:… и index.license:"CC BY"
_exists_:bibjson.author.orcid_id истинно, если ORCID есть хотя бы у одного автора«Есть ли автор без ORCID» запросом не проверить — нужна выгрузка и проверка записей

Полезные запросы

issn:1234-5678 AND bibjson.year:2024
issn:1234-5678 AND NOT _exists_:index.doi
bibjson.abstract:metamaterial AND bibjson.year:[2022 TO 2024]
bibjson.author.orcid_id:"https://orcid.org/0000-0002-1825-0097"
bibjson.link.url:"journal.example.org"
index.country:"Russian Federation" AND index.subject:Physics     (журналы)
bibjson.apc.has_apc:false AND index.language:Russian              (журналы)

В конструкторе запросов есть все 54 поля статей и 83 поля журналов с описаниями и примерами — щелчок вставляет условие в запрос.

Открыть пример запроса