欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

想实现一个存储海量url的地址库, 用什么工具或技术?解决办法

更新时间: 2014-01-05 02:30:57 责任编辑: Author_N1

 

想实现一个存储海量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也以/切割,切割好之后,一个一个搜索就好了
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:30:57
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/10795/
本文WWW.DOC100.NET DOC100.NET版权所有。