求在这个程序中的最佳算法
在数据库中有 有字段:邮编号 省份 城市1 城市2 区县1 区县2
如表所示
序号 邮编号 省份 城市1 城市2 区县1 区县2
1 030100 山西省 太原市 太原市 阳曲县 阳曲县(黄寨镇)
2 350011 福建省 福州市 福州市 晋安区 晋安区
3 030200 山西省 太原市 太原市 古交市 古交市
4 030025 山西省 太原市 太原市 晋源区 晋源区
5 056800 河北省 邯郸市 邯郸市 魏县 魏县(魏城镇)
6 057750 河北省 邯郸市 邯郸市 馆陶县 馆陶县(馆陶镇)
7 057650 河北省 邯郸市 邯郸市 广平县 广平县(广平镇)
8 057350 河北省 邯郸市 邯郸市 鸡泽县 鸡泽县(鸡泽镇)
我想要的结果就是:
当我输入一个地址:“福州市晋安区珠宝路2号AA大厦” 就能得给出 邮编号是:
350011 有时地址是不全的,问如何得出最匹配的邮编号
请问在程序中用什么算法最快,是在程序上做,还是在SQL查询语句上处理?
------解决方案--------------------这张表如果是相对静态的,可以加载到缓存中,然后前端输入地址后,用java 去遍历搜索!
比如将 前端输入的地址 按 “省” “市” “县” “区” “路” 等等顺序遍历!
------解决方案--------------------难度不小,建议如下:
1、将每行的字段值合并起来作为一个新的字段,比如第一行就是:
山西省太原市阳曲县
2、找开源搜索引擎,对合并后的字段做全文检索;
3、将整个地址扔给搜索引擎,找出匹配度最高的那行。
------解决方案--------------------省,市 用2个下拉框 并且联动起来
结果 邮编 有这个2个限定够了
------解决方案--------------------
------解决方案--------------------Lucene,java开源的搜索引擎,里面有可以中文分词