专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 高性能数据库开发

念实现一个存储海量URL的地址库, 用什么工具或技术

发布时间:2010-05-24 21:16:30 文章来源:www.iduyao.cn 采编人员:星星草
想实现一个存储海量URL的地址库, 用什么工具或技术?
是一个URL地址前缀库,里面的记录既有URL地址前缀(不是一个完整的地址,而是path的前面几个step),也有完整的URL地址,用户查询时不是准确查找某个记录,而是做最大匹配,例如,假设有下面的记录:

1,http://www.foo.com
2, http://www.foo.com/document
3, http://www.foo.com/document/doc1
4, http://www.foo.com/document/doc1/title.html
 
现在查找 http://www.foo.com/document/doc1/chapter1.html,我希望能够获得匹配最长的那个,就是第三个。

我大概看了一下bloomfilter和berkeley db的介绍,好像没有说做相似匹配,难道需要做底层编程?

有没有现成的开源免费的工具?有没有用trie实现的?
------解决思路----------------------
呵呵,楼主的需求很像linux里的路径搜索,可以考虑用目录项对象的概念,即: 以/来切割你的url,每部分做为一个目录向对象,保存时以第一个目录项对象,即:www.foo.com,做hash算法,后面再建立一个树形结构

搜索的时候,可以将要搜索的的url以/切割,一个一个对象的搜索匹配
这样可以满足高性能的查找

想简单的话,直接用perl就好了啊,散列里再包含散列,搜索的时候一级一级找就好了
------解决思路----------------------
如果打算用db的话,也是可以做的

还是以/分割,分割后的每一个部分都当作一个节点存在db里

www.foo.com  它的符节点是1    它的父节点是0
document     它的符节点是2    它的父节点是1
doc1         它的符节点是3    它的父节点是2
title.html   它的符节点是4    它的父节点是3

匹配的时候,将要匹配的url也以/切割,切割好之后,一个一个搜索就好了
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: