Searches with detailed field-specific filter options. When total results exceed 2000 (server limit), automatically paginates using year ranges to retrieve all results.
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 (optional). Accepts character vector for multiple universities.
- university_id
University ID (optional). If provided, lookup by
universityis skipped.- 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 (optional). Accepts character vector for multiple institutes.
- institute_id
Institute ID (optional). If provided, lookup by
instituteis skipped.- 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". Default is "all".
- thesis_no
Thesis number to search for (optional). Accepts character vector for multiple thesis numbers.
- division
Division name (optional). Accepts character vector for multiple divisions.
- division_id
Division ID (optional). If provided, lookup by
divisionis skipped.- 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 (optional). Accepts character vector for multiple disciplines.
- discipline_id
Discipline ID (optional). If provided, lookup by
disciplineis skipped.- 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 get all available results via automatic pagination.- 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 YOK web portal accepts only a single value per filter field. This function extends beyond the portal by accepting vector-valued parameters for most fields. Multiple values are expanded into separate API calls, and the results are combined and deduplicated by thesis number.
When the total result count exceeds 2000 and no year range is specified, the function automatically uses 1959-present as the year range and paginates to retrieve all results.
See also
Other search functions:
search_advanced(),
search_basic()
Examples
if (FALSE) { # interactive()
# Field-specific search with year filter
climate <- search_detailed(
title = "iklim değişikliği",
year_start = 2015,
year_end = 2024
)
head(climate)
#> # A tibble: 6 x 13
#> thesis_no title_original author university year thesis_type_en detail_id
#> <chr> <chr> <chr> <chr> <int> <chr> <chr>
#> 1 967755 Iklim degis... AYSE Ankara... 2024 Master TCKf...
#> 2 955779 Iklim polit... MEHMET Istanbul...2023 Doctorate xSXE...
# Title search with university filter
ml_theses <- search_detailed(
title = "makine öğrenmesi",
university = "Orta Doğu Teknik Üniversitesi",
thesis_type = "phd"
)
# Search by university and division
search_results <- search_detailed(
university = "Ankara Üniversitesi",
division = "İktisat Ana Bilim Dalı",
year_start = 2020,
year_end = 2023
)
# Get ALL results for a subject (auto-paginates if > 2000)
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 across multiple universities (automatically expands)
search_results <- search_detailed(
university = c("Ankara Üniversitesi", "İstanbul Üniversitesi"),
subject = "Ekonomi"
)
# Search multiple disciplines within a subject
search_results <- search_detailed(
subject = "Ekonomi",
discipline = c("İktisat", "Maliye", "Ekonometri")
)
# Search for multiple specific thesis numbers
search_results <- search_detailed(
thesis_no = c("123456", "234567", "345678")
)
# 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"),
university = c("Ankara Üniversitesi", "İstanbul Üniversitesi"),
year_start = 2020
)
}
