ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

拒绝发布坏数据:地址契约与质量门禁,如何保证真实地址生成的可靠

拒绝发布坏数据:地址契约与质量门禁,如何保证真实地址生成的可靠 拒绝发布坏数据地址契约与质量门禁如何保证真实地址生成的可靠【免费下载链接】addressA self-hosted address and synthetic test-profile generator for 27 countries and regions, built from real open-data streets, administrative areas, coordinates, and postcodes. Supports multilingual output, IP-nearby generation, map previews, and API access. 基于真实开放数据的自托管地址与合成测试资料生成器覆盖 27 个国家和地区支持多语言地址、IP 附近生成、地图预览与 API 调用项目地址: https://gitcode.com/gh_mirrors/address4/addressAddress 是一个基于真实开放数据的自托管地址生成与合成测试资料生成器覆盖 27 个国家和地区。它最核心的原则只有一条宁可没有不可编造。为了守住这条底线项目在数据入库到发布的全链路中埋设了一道「地址契约 质量门禁」体系——用matchLevel精度分级、逐国邮编校验和行政层级核验三重关卡拦截每一条不合格的地址记录。️这篇文章带你用大白话看懂这套机制它检查什么、拦下什么、拦下之后数据去哪儿了。先分清三级 matchLevel 地址精度每条地址都带一个matchLevel字段标明它「精确到什么程度」。这是理解整个质量门禁的钥匙matchLevel含义允许的内容street街道级只有真实路名 行政层级禁止出现门牌号、楼栋、单元且中国不参与街道级生成premise门牌级真实街道 真实门牌/楼栋号subpremise单元级在门牌级基础上还有来源提供的单元号规则很直白精度越低能携带的字段越少。一条标着street的地址如果偷偷带上门牌号会被直接判定为street_has_premise_fields而拦下反过来非street级地址缺门牌号中国可用小区名替代则记missing_house_number。这套契约的字段要求按国家逐一定义在 src/domain/address-contracts.mjs 中例如美国、加拿大、墨西哥、日本要求「州省 城市 邮编」齐全而新加坡额外强制要求来源可证的 6 位邮编——缺失或歧义的邮编永远不会被借用或臆造。完整规则见 docs/address-contracts.md。邮编校验逐国正则验证不过宁可留空每个国家有自己独立的邮编形状集中维护在 src/domain/postcode-patterns.mjs 美国5 位数字可带-4位扩展 日本34数字中间可有连字符 英国SW1A 1AA式的字母数字组合 新加坡强制 6 位数字任何精度都不允许缺失两个容易忽略的细节验证失败 ≠ 地址作废非中国。海外地址的邮编如果无法通过校验会被清空留白而不是拒绝整条真实地址——因为地址本身是真的只是来源没给出可信邮编。中国则相反邮编必填6 位缺一即不合格。本地数字会先归一化。阿拉伯-印度数字٠-٩、๐-๙会统一转成 ASCII 数字再校验normalizePostcode还会按国家补上标准分隔如日本123-4567保证格式一致。校验逻辑在 src/domain/address-quality.mjs 中邮编缺失记missing_postcode格式错误记invalid_postcode坐标落在国境范围外记coordinates_outside_country无名字的路unnamed road、không tên、sin nombre…多语言占位名记placeholder_street。行政核验州省代码不能自相矛盾地址里的行政字段州省、城市、区县也必须「名实相符」核心实现在 src/domain/administrative-integrity.mjs美国州名与州缩写代码如California↔CA必须互相一致出现mismatched-us-admin1即拒绝发布时美国等 6 国必须携带权威admin1Code。香港必须通过 18 区层级校验岛屿/九龙/新界 → 区 → 地界。日台州省须以「都道府县」「縣市」结尾城市须以「市区町村」「區鄉鎮市」结尾脚本必须是本地文字。防重复城市名等于区县名、街道名等于城市名这类套娃数据duplicate_locality_district、street_matches_administration都会被标记。同时街道的行政字段不允许从最近的目录点推断——宁可缺不可错配。街道去重按「国家 行政层级 归一化路名」进行同一条街上的多个点不会膨胀出重复地址。门禁之后坏数据的三条退路通过门禁只是开始项目对已发布数据同样零容忍发布时自动退役。发布前的原子校验会重查每一条候选记录不合格的历史行被置为active0并打上publication-validation退役标记见 server/database/published-pool.mjs同时原子替换生成索引——坏数据从可用池中彻底消失。入库双重检查。契约在导入时校验一次读取时再查一次翻译端点也会校验每个组件宁可直接回退到完整原文地址也绝不发布中英混杂的半翻译行。持续审计兜底scripts/validate-address-quality.mjs 对每国随机抽样 4000 条检查邮编模式、字段空缺、脚本错乱如中国地址里混入西里尔字母任何国家缺陷率超过 10% 就判失败scripts/audit-address-quality.mjs 全量扫描地址池按国家和拒绝原因输出统计报告生产环境审计每次对每个受影响国家至少抽样 500 个生成结果包检查契约、语言、住宅证据与样本多样性。在监控页看数据健康度普通用户不用读源码也能看到质量门禁的效果。数据监控页直接展示国家总数、真实住宅总量、行政覆盖率和全球分布管理后台的国家工作台则给出每国的「完成规则」总量目标、行政节点覆盖、最低层级目标以及当前是否达标。这些数字的分母只统计通过质量门禁的已发布数据——你在界面上看到的每一个数背后都是被三重关卡筛过的记录。小结这套门禁拦住了什么关卡拦截目标matchLevel 精度契约街道级地址混入门牌号、精度与字段不匹配邮编逐国校验格式错误、无来源证明的邮编新加坡强制 6 位行政层级核验州名/代码矛盾、层级套娃、占位路名、跨境坐标发布校验 退役机制历史遗留脏数据、混语翻译行抽样审计 生产抽审长期潜伏的低频缺陷缺陷率红线 10%对新手而言理解这套机制最大的价值是当你用 Address 做表单测试、物流流程验证或地理数据演示时拿到的每一条地址都来源可追溯、精度有标注、字段有出处——空着的是真的没有写出来的都是真的。想深入了解各国契约细节可阅读 docs/address-contracts.md部署与 API 使用方式见 docs/DEPLOYMENT.zh-CN.md 与 docs/API.zh-CN.md。【免费下载链接】addressA self-hosted address and synthetic test-profile generator for 27 countries and regions, built from real open-data streets, administrative areas, coordinates, and postcodes. Supports multilingual output, IP-nearby generation, map previews, and API access. 基于真实开放数据的自托管地址与合成测试资料生成器覆盖 27 个国家和地区支持多语言地址、IP 附近生成、地图预览与 API 调用项目地址: https://gitcode.com/gh_mirrors/address4/address创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表