feat: unitur NULL backfill scripti + refresh ingest onarımı
YÖK Atlas API'sinin universiteTuru döndürmediği ~2.081 satır (Nişantaşı, Beykent gibi vakıflar + KKTC kampüsleri) devlet/vakıf filtrelerinden ve sihirbaz sayaçlarından sessizce düşüyordu. unitur-onar üç aşamada doldurur: aynı üniversitenin dolu satırından kopya → KKTC ili kuralı → manuel eşleme (Cerrahpaşa, MSB/İçişleri SBÜ, Alanya, Manas, Yesevi, Az. Pedagoji). "ÜNİVERSİTESİ- CERRAHPAŞA" tarzı tire etrafı boşluklu duplikat adlar da normalize edilir; refresh.ts hem insert yolunda adı normalize eder hem her tazeleme sonunda onarımı idempotent olarak koşar. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -12,6 +12,7 @@
|
||||
*/
|
||||
import path from "node:path";
|
||||
import Database from "better-sqlite3";
|
||||
import { uniAdiNormalize, uniturOnar } from "./unitur-onar";
|
||||
|
||||
const API = "https://yokatlas.yok.gov.tr/api/tercih-kilavuz/search";
|
||||
const PAGE_SIZE = 500;
|
||||
@@ -169,7 +170,9 @@ async function main() {
|
||||
insert.run(
|
||||
id,
|
||||
r.birimAdi,
|
||||
r.universiteAdi,
|
||||
// "ÜNİVERSİTESİ- CERRAHPAŞA" gibi tire etrafı boşluklu varyantlar
|
||||
// duplikat kurum adı üretmesin
|
||||
uniAdiNormalize(r.universiteAdi),
|
||||
r.universiteTuru ?? null,
|
||||
r.ilAdi ?? null,
|
||||
r.fymkAdi ?? null,
|
||||
@@ -205,6 +208,11 @@ async function main() {
|
||||
console.log(
|
||||
`DB toplam: ${stats.toplam} program, 2025 sıralaması olan: ${stats.sirali}`
|
||||
);
|
||||
|
||||
// API'nin universiteTuru döndürmediği kayıtlar devlet/vakıf filtrelerinden
|
||||
// düşmesin: her tazelemeden sonra unitur onarımı koşulur (idempotent).
|
||||
db.transaction(() => uniturOnar(db))();
|
||||
|
||||
db.close();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user