当前位置:  开发笔记 > 后端 > 正文

构建一个Web搜索引擎

如何解决《构建一个Web搜索引擎》经验,为你挑选了4个好方法。

我一直对开发网络搜索引擎感兴趣.什么是开始的好地方?我听说过Lucene,但我不是一个大家伙.任何其他好的资源或开源项目?

我知道这是一个巨大的承诺,但这是吸引力的一部分.我不打算创建下一个谷歌,只是我可以用来搜索我可能感兴趣的网站子集.



1> SquareCog..:

搜索引擎有几个部分.从广义上讲,以一种绝望的方式(如果您觉得可以添加更好的描述,链接等,请随时编辑):

    爬虫.这是通过Web,抓取页面并将有关它们的信息存储到某个中央数据存储中的部分.除了文本本身之外,您还需要访问它的时间等等.爬虫需要足够聪明才能知道访问某些域的频率,遵守robots.txt约定等.

    解析器.这将读取爬网程序获取的数据,对其进行分析,保存所需的任何元数据,丢弃垃圾,并可能向爬网程序提供下次获取内容的建议.

    索引器.读取解析器解析的内容,并在网页上找到的术语中创建反向索引.它可以像你想要的那样聪明 - 应用NLP技术来制作概念索引,交叉链接,投入同义词等.

    排名引擎.鉴于有几千个匹配"apple"的网址,您如何确定哪个结果最佳?但是索引没有给你那些信息.您需要分析文本,链接结构以及您想要查看的其他任何内容,并创建一些分数.这可以完全在飞行中完成(这非常困难),或者基于一些预先计算的"专家"概念(参见PageRank等).

    前端.有些东西需要接收用户查询,点击中央引擎并做出响应; 这个东西需要对缓存结果很聪明,可能混合来自其他来源的结果等.它有自己的一系列问题.

我的建议 - 选择你最感兴趣的那些,下载Lucene或Xapian或任何其他开源项目,拉出执行上述任务之一的位,并尝试替换它.希望有更好的东西:-).

一些可能有用的链接: "敏捷网络爬虫",来自爱沙尼亚的一篇论文(英文) Sphinx搜索引擎,索引和搜索API.专为大型数据库而设计,但模块化和开放式. "信息检索,关于来自Manning等人的IR的教科书.很好地概述了索引是如何构建的,出现了各种问题,以及一些关于爬行的讨论等等.免费在线版本(现在)!



2> Oli..:

Xapian是另一种选择.我听说它比Lucene的一些实现更好.



3> Mauricio Sch..:

看看nutch,它是由创造Lucene(Doug Cutting)的同一个人写的.



4> Joel..:

在我看来,最大的部分是网站的索引.制作机器人来搜索互联网并解析其内容.

我和一位朋友正在谈论谷歌和其他搜索引擎有多么神奇.数百万的结果在不到半秒内?疯.我认为他们可能预设了常用搜索项目的搜索结果.

编辑: 这个网站看起来很有趣.

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有