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 typesense
|
||||
|
||||
from gias_codes import PHASE_OF_EDUCATION, RELIGIOUS_CHARACTER, SCHOOL_TYPE, translate
|
||||
|
||||
COLLECTION_SCHEMA = {
|
||||
"fields": [
|
||||
{"name": "urn", "type": "int32"},
|
||||
@@ -44,10 +46,10 @@ QUERY_BASE = """
|
||||
SELECT
|
||||
s.urn,
|
||||
s.school_name,
|
||||
s.phase,
|
||||
s.school_type,
|
||||
s.phase_code,
|
||||
s.school_type_code,
|
||||
l.local_authority_name as local_authority,
|
||||
s.religious_character,
|
||||
s.religious_character_code,
|
||||
s.ofsted_grade,
|
||||
l.postcode,
|
||||
s.headteacher_name,
|
||||
@@ -85,14 +87,15 @@ def build_document(row: dict) -> dict:
|
||||
"id": str(row["urn"]),
|
||||
"urn": row["urn"],
|
||||
"school_name": row["school_name"] or "",
|
||||
"phase": row["phase"] or "",
|
||||
"school_type": row["school_type"] or "",
|
||||
"phase": translate(row["phase_code"], PHASE_OF_EDUCATION) or "",
|
||||
"school_type": translate(row["school_type_code"], SCHOOL_TYPE) or "",
|
||||
"local_authority": row["local_authority"] or "",
|
||||
"postcode": row["postcode"] or "",
|
||||
}
|
||||
|
||||
if row.get("religious_character"):
|
||||
doc["religious_character"] = row["religious_character"]
|
||||
religious_character = translate(row.get("religious_character_code"), RELIGIOUS_CHARACTER)
|
||||
if religious_character:
|
||||
doc["religious_character"] = religious_character
|
||||
if row.get("ofsted_grade"):
|
||||
doc["ofsted_rating"] = OFSTED_LABELS.get(row["ofsted_grade"], "")
|
||||
if row.get("headteacher_name"):
|
||||
|
||||
Reference in New Issue
Block a user