基于Royal Mail PAF Raw数据构建邮政编码地址

问题描述 投票:1回答:6

我正在开发用于基于Royal Mail PAF数据的邮政编码查找的定制构建软件。该软件的主要目的是代替快速地址(第三方软件供应商)。

我有几个问题

  1. Quick Address数据文件(包括索引)为什么不到500MB,而如果查看PAF原始数据则超过2.50GB。他们对原始数据执行了哪些清理和压缩技术来实现这一目标。我导入的Db大小为2.50GB(sqlite)。我必须使用一些免费/开源Db,而付费Db在这里不是我的选择。

  2. 有2800万条记录。例如,考虑到可以使用“ LIKE”语句执行搜索,该如何改善组织名称或城镇搜索?

任何想法?

sql compression query-optimization postal-code
6个回答
0
投票

不要存储不需要的信息,例如DPS,占用率和各种公司标志

而不是拥有2千8百万个地址,您可以为每个邮政编码保留一个180万个地址,并为每个邮政编码保留一个毁灭点列表(即门牌号,房屋/建筑物名称)

我不确定您具有哪个PAF版本,带密钥的关系版本或扩展版本。

带密钥的版本将减小文件的大小,因为您只需要具有指向用于查找位置,街道,街道末端等的查找表的数字的地址即可。但是在您的地址中使用密钥将无助于按组织或城镇名称进行搜索。] >

视图将帮助您格式化键的输出地址。确保您使用的数据库具有可以使用索引的视图,否则将导致表扫描。

我过去所做的工作是使用全文本搜索引擎狮身人面像http://sphinxsearch.com/为PAF编制索引,它可以为您决定索引的任何单词提供非常强大的搜索(包括部分单词和模糊匹配)。尝试输入地址中的所有单词。 sphinx的结果是一个键列表,可用于迭代sql结果集。 sql查询可以针对可用于从查找表构建完整地址的键的地址表。狮身人面像的索引构建速度非常快,并且索引大小也非常小。

对于这种大小的数据库,MySQL比sqlite更适合。

要考虑的其他事项。您是在进行批处理还是只是事务处理–忘记了狮身人面像进行批处理。更新频率。如果您不每月更新一次,那么您很可能会在很短的时间内过时。

注意:如果您拥有PAF的键控版本,则存在一些用于格式化地址的可怕规则和许多未记录的异常。


0
投票

文件大小对您来说是个问题吗?如果文件大小很重要,我只会担心压缩-几乎不再压缩了,在大多数情况下2.5 GB并不是禁止的。


0
投票

您想尝试一个空间填充曲线或空间索引。 sfc将2d复杂度降低到1d复杂度。我用邮政编码搜索做了类似的事情。您想在phpclasses.org(希尔伯特曲线)上查看我的sfc的php实现。您想寻找尼克的希尔伯特曲线四叉树空间索引博客。


0
投票

我赞同汤姆·格尼的观点...您正在做很多工作,却没有什么好处。另外,您还要始终负责更新数据-额外的工作。


0
投票

或者从邮局到PAF,也可以使用192.com网站查找地址。


0
投票

取决于您的确切要求。

© www.soinside.com 2019 - 2024. All rights reserved.