feat(pipeline): typesense sync translates GIAS codes before indexing
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -19,6 +19,8 @@ import psycopg2
|
|||||||
import psycopg2.extras
|
import psycopg2.extras
|
||||||
import typesense
|
import typesense
|
||||||
|
|
||||||
|
from gias_codes import PHASE_OF_EDUCATION, RELIGIOUS_CHARACTER, SCHOOL_TYPE, translate
|
||||||
|
|
||||||
COLLECTION_SCHEMA = {
|
COLLECTION_SCHEMA = {
|
||||||
"fields": [
|
"fields": [
|
||||||
{"name": "urn", "type": "int32"},
|
{"name": "urn", "type": "int32"},
|
||||||
@@ -44,10 +46,10 @@ QUERY_BASE = """
|
|||||||
SELECT
|
SELECT
|
||||||
s.urn,
|
s.urn,
|
||||||
s.school_name,
|
s.school_name,
|
||||||
s.phase,
|
s.phase_code,
|
||||||
s.school_type,
|
s.school_type_code,
|
||||||
l.local_authority_name as local_authority,
|
l.local_authority_name as local_authority,
|
||||||
s.religious_character,
|
s.religious_character_code,
|
||||||
s.ofsted_grade,
|
s.ofsted_grade,
|
||||||
l.postcode,
|
l.postcode,
|
||||||
s.headteacher_name,
|
s.headteacher_name,
|
||||||
@@ -85,14 +87,15 @@ def build_document(row: dict) -> dict:
|
|||||||
"id": str(row["urn"]),
|
"id": str(row["urn"]),
|
||||||
"urn": row["urn"],
|
"urn": row["urn"],
|
||||||
"school_name": row["school_name"] or "",
|
"school_name": row["school_name"] or "",
|
||||||
"phase": row["phase"] or "",
|
"phase": translate(row["phase_code"], PHASE_OF_EDUCATION) or "",
|
||||||
"school_type": row["school_type"] or "",
|
"school_type": translate(row["school_type_code"], SCHOOL_TYPE) or "",
|
||||||
"local_authority": row["local_authority"] or "",
|
"local_authority": row["local_authority"] or "",
|
||||||
"postcode": row["postcode"] or "",
|
"postcode": row["postcode"] or "",
|
||||||
}
|
}
|
||||||
|
|
||||||
if row.get("religious_character"):
|
religious_character = translate(row.get("religious_character_code"), RELIGIOUS_CHARACTER)
|
||||||
doc["religious_character"] = row["religious_character"]
|
if religious_character:
|
||||||
|
doc["religious_character"] = religious_character
|
||||||
if row.get("ofsted_grade"):
|
if row.get("ofsted_grade"):
|
||||||
doc["ofsted_rating"] = OFSTED_LABELS.get(row["ofsted_grade"], "")
|
doc["ofsted_rating"] = OFSTED_LABELS.get(row["ofsted_grade"], "")
|
||||||
if row.get("headteacher_name"):
|
if row.get("headteacher_name"):
|
||||||
|
|||||||
Reference in New Issue
Block a user