搜索技术-对于一个搜索引擎,如何实时监测网页的更新并且快速更新索引?

发布于 2016-11-03 03:48:04 字数 105 浏览 1266 评论 4

请问对于一个搜索引擎,如何实时监测网页的更新?
对于新抓取下来的网页,如何快速更新索引,同时更新时不影响搜索服务?
我现在用的nutch来做搜索引擎,采用Lucene建立索引。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

晚风撩人 2017-07-29 02:42:48

请问对于一个搜索引擎,如何实时监测网页的更新?
对于新抓取下来的网页,如何快速更新索引,同时更新时不影响搜索服务?
我现在用的nutch来做搜索引擎,采用Lucene建立索引。

实时监测。。。。你需要实时去监控你的页面,这得要求 网站用你提供的接口主动告诉你“我在XXX时候进行了更新”
另一个就是 你有足够多的爬虫,足够多的服务器,时刻去抓取网页,这样可以增加你发现网页更新机率,

判断网页是己更新你可以参数 :通过获取http头信息,检查Last-Modified, Content-Length更上次抓取是记录对比判断是否要进行重新抓取

索引的更新你可以用Lucene 的
indexWriter.deleteDocuments(new Term("fileName"));//先删除 一个,然后再
Field fileName = new Field("fileName", root.getName(), Store.YES, Index.ANALYZED);
document.add(fileName); //然后再添加一个。
这样就完成更新了

灵芸 2017-03-21 14:48:33

实时监测。。。。 困难点吧

不过可以设置优先级,对于质量高的网站周期短一些。
质量高有两种:
1是白名单,比如新浪、网易等知名网站。
2是统计指向这个网站的链接数的多少(难点在于防作弊)

目前就想到这两点

归属感 2017-02-10 18:38:46

不可能实时监测的,除非:
1. 网站是你自己的,比如百度贴吧
2. 网站用你提供的接口主动告诉你“我在XXX时候进行了更新”

至于更新索引,技术就多了。
比如有两套索引,一套前台服务一套后台更新,更新完之后切换(对分布式系统来说可能就是改一下DNS);也可以每个最小单元的地方都是这样可更新的结构。很多数据库自己就是支持Transact的,也就不用考虑这个问题了。

夜无邪 2017-01-07 17:53:36

为了提高搜索实效性,你可以建一个链接库,已抓取库,待抓取库。在抓取调度系统中设定抓取频率(间隔秒)检查一次,通过获取http头信息,检查Last-Modified, Content-Length更上次抓取是记录对比判断是否要进行重新抓取,存储介质建议用redis。
索引不能在发现有更新时就重建,可以通过建立增量索引方式针对新增或更新的数据,不过可能会出现索引重复数据的情况(不知Lucene有没有解决方案)。
以上只是一个思路。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文