Searches YOK's redesigned detailed form. When total results exceed 2000, automatically paginates using year ranges to retrieve more results. Very broad single-year ranges can still be capped by the server.
Usage
search_detailed(
university = NULL,
university_id = NULL,
thesis_type = "all",
year_start = NULL,
year_end = NULL,
institute = NULL,
institute_id = NULL,
access_type = "all",
group = "all",
thesis_no = NULL,
division = NULL,
division_id = NULL,
status = "approved",
title = NULL,
discipline = NULL,
discipline_id = NULL,
language = NULL,
author = NULL,
subject = NULL,
supervisor = NULL,
keyword = NULL,
abstract = NULL,
max_search_results = 2000,
ignore_cache = FALSE
)Arguments
- university
University name filter. If provided without
university_id, the ID is looked up automatically.- university_id
University ID filter. Use this to skip lookup.
- thesis_type
Type(s) of thesis. Default is "all". Accepts character vector for multiple types: "all", "masters", "phd", "medical_specialty", "arts", "dentistry", "medical_sub", "pharmacy". Multiple values will trigger separate searches that are combined.
- year_start
Start year (optional). Used for pagination when results > 2000.
- year_end
End year (optional). Used for pagination when results > 2000.
- institute
Institute name filter. If provided without
institute_id, the ID is looked up automatically.- institute_id
Institute ID filter. Use this to skip lookup.
- access_type
Access type. Default is "all". Accepts character vector for multiple access types: "all", "open", "restricted". Multiple values will trigger separate searches that are combined.
- group
Group filter. One of "all", "science", "social", or "medical".
- thesis_no
Thesis number to search for. This uses YOK's detailed form endpoint because the redesigned keyword endpoint is unreliable for thesis numbers.
- division
Division name filter. If provided without
division_id, the ID is looked up automatically.- division_id
Division ID filter. Use this to skip lookup.
- status
Character. Thesis status filter. One of "approved", "all", "in_preparation". Default is "approved".
- title
Title to search for (optional). Accepts character vector for multiple titles.
- discipline
Discipline name filter. If provided without
discipline_id, the ID is looked up automatically.- discipline_id
Discipline ID filter. Use this to skip lookup.
- language
Integer language ID or character label (e.g., "tr", "en", "Turkish", "İngilizce"). Accepts a character vector for multiple languages.
Author name (optional). Accepts character vector for multiple authors.
- subject
Subject (Konu) name (optional). Accepts character vector for multiple subjects.
- supervisor
Supervisor name (optional). Accepts character vector for multiple supervisors.
- keyword
Keyword text (Dizin) to search (optional). Accepts character vector for multiple keywords.
- abstract
Abstract text to search (optional). Accepts character vector for multiple abstracts.
- max_search_results
Maximum results to return. Default is 2000 (server limit per query). Use higher values or
Infto paginate beyond the first server batch when year-range splitting can narrow each request below the server cap.- ignore_cache
Logical. If
TRUE, bypass cached search/range results and fetch fresh data from the server.
Value
A tibble containing thesis records with columns:
thesis_no - Unique thesis identifier
title_original - Original title
title_translation - Title translation when available
author - Author name
university - University name
year - Year of thesis
thesis_type_tr - Type of thesis in Turkish
thesis_type_en - Type of thesis in English
language_tr - Thesis language in Turkish
language_en - Thesis language in English
subject_tr - Turkish subject classification
subject_en - English subject classification
detail_id - ID for fetching details
Details
The detailed form accepts field-specific and institutional filters in the
same request, including title, author, supervisor, subject,
keyword, abstract, thesis_no, university, institute, division,
discipline, and group. Vector-valued fields are expanded into separate
requests, and the results are combined and deduplicated by thesis number.
Examples
if (FALSE) { # \dontrun{
# Field-specific search with year filter
climate <- search_detailed(
title = "iklim değişikliği",
year_start = 2015,
year_end = 2024
)
# Title search with a thesis type filter
ml_theses <- search_detailed(
title = "makine öğrenmesi",
thesis_type = "phd"
)
# Search by subject and year range
search_results <- search_detailed(
subject = "Ekonometri",
year_start = 2020,
year_end = 2023
)
# Paginate a broad subject search
all_econ <- search_detailed(subject = "Ekonometri", max_search_results = Inf)
# Search for a specific supervisor's theses
search_results <- search_detailed(supervisor = "Hasan Şahin")
# Search for a specific thesis number
search_results <- search_detailed(thesis_no = "12345")
# Search for multiple titles
search_results <- search_detailed(
title = c("Ekonometri", "Zaman Serileri")
)
# Search for multiple languages
search_results <- search_detailed(
subject = "Ekonomi",
language = c("tr", "en")
)
# Search for multiple thesis types
search_results <- search_detailed(
subject = "Ekonomi",
thesis_type = c("phd", "masters")
)
# Search for multiple access types
search_results <- search_detailed(
subject = "Makine Mühendisliği",
access_type = c("open", "restricted")
)
# Complex multi-parameter search
search_results <- search_detailed(
author = c("Ahmet Yılmaz", "Mehmet Demir"),
year_start = 2020
)
} # }
