免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1293 | 回复: 0
打印 上一主题 下一主题

DIY自己的搜索引擎技术讨论之1:一些Open Issue的考虑 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-02-01 21:50 |只看该作者 |倒序浏览
    工作之余总想做点平时没做到的事情来耍,这不,想自己DIY一个内网的web搜索引擎来自娱自乐一下了,零散的写一点想法,希望每一个看到的人都帮忙review一下,呵呵,说不定过两天热情过了就不想提这事情了...

    1. 关于软件构架的问题
     1.1) GUI就不提了,准备最后做两个jsp页面,越简单越好。

     1.2) 可能稍微有点编程经验的人都会考虑,一个简单的搜索引擎应该可以分为“网络爬虫”,“数据库”,“索引器”和web GUI四块。

     2.网络爬虫(目前正在做的部分)
    “网络爬虫”主要用来在后台运行不停的搜索和提取internet上的web文件并保存。这里我大致的在纸上画了一下“网络爬虫”部分的arch和data structure,大概准备用三个thread和三个Queue来做这件事:
     Queue1:待提取URL结构的queue。
     Queue2:访问超时的URL结构的queue,用差分时间链来组织。
     Queue3:URL内容提取完毕待写进文件系统的queue。
     ThreadA:提取Queue1中的一个URL结构,解析文本之后将其中的URL放回Queue1(这里出现了Open Issue1),将访问超时的URL结构加入一个时钟Tick值链入Queue2。
     ThreadB:定期被触发的Thread,主要做的事情就是减Queue2队首的时钟tick值(差分时间链嘛),将等待到期的URL重入Queue1。
     ThreadC: 定期将Queue3中的Node写入文件系统(Open Issue2)。

     3.使不使用数据库的问题
     不使用数据库是不可能的,但这里我准备移植一个Open Source的文本查询数据库——lucene,把它的核心代码移植到我的project里面来改了一起编译。
     考虑了一下,如果这部分不用数据库、自己利用文件系统来实现,那做到明年怕都做不完。
     
      4. 关于索引器
      如果不建立索引,在搜索的时候来做串匹配,那是超低效的。在建立索引的时候涉及到了对URL进行打分和查找相似度的问题,列为两个OpenIssue。


       5. OpenIssue1:URL到URL的链接是一个有很多环的图。在不停从URL中提取URL的过程中,如何保证对重复的URL不重复提取?
          Solution1: 每找到一个URL都把历史记录遍历一次。
          Solution2:  Queue3实际上可以看作一级推迟写入磁盘的cache,保存的是最近处理的尚未写入磁盘的记录。于是在每次找到一条URL时都把cache中的记录遍历一次,这样可大幅减少重复率。
          Solution3: 利用一级域名来组织Queue1链表。插入的时候也按照一级域名排序。这个相当于对某个域名范围内的深度优先遍历了。这样同样对历史记录遍历,查找量小的多。
          Solution4: 同样利用一级域名来组织Queue1链表,但对同一一级域名下的URL只遍历指定的层数(如3层)。在文件系统中同一一级域名下的信息集中存储。一个link来了以后首先到当前cache下去找,找完了再到文件系统下去找。

       6. OpenIssue2:ThreadC将Queue中的结构写入文件系统时机问题。
      
          Solution1:等待到ThreadA的一个semaphore上。直到搜完一个一级域名下的所有URL一起写入。
          Solution2: n记录时写。

       7.OpenIssue3 : 对URL打分的问题。
      
       Solution1:PageRank算法

       Solution2:Hints算法。
      
       Solution3:HillTop...
         
         


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/23052/showart_241667.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP