首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编写搜索引擎

编写搜索引擎
EN

Stack Overflow用户
提问于 2010-06-18 14:35:03
回答 5查看 272关注 0票数 4

标题可能有点误导,但我想不出更好的标题。我正在编写一个简单的搜索引擎,它将在几个站点上搜索特定的域。具体而言:我正在为硬风格的livesets/售后电影/曲目编写搜索引擎。为了做到这一点,我将搜索那些提供生命、轨道等等的网站。这里的问题是速度,我需要将搜索查询传递到5-7个站点,得到结果,然后使用自己的算法按排序顺序显示结果。我可以只是“多线程”,但说起来容易,然后做,所以我有几个问题。

  1. 这个问题的最佳解决方案是什么?我应该只是多线程/处理这个应用程序吗,所以我要加快速度吗?
  2. 还有其他的解决方案吗?还是我做错了什么?

谢谢,

威廉·范多恩

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-06-18 14:37:56

除非您正在尝试学习多线程,否则不要自己编写这方面的基础结构。同步许多任务,可能需要不同的时间,处理故障等,这是一个混乱。

对于大部分可并行的任务(例如查询多个站点、组合结果等),您可能需要查看现有的基础结构。

Map/reduce框架(如Hadoop )可以为您处理其中的一些问题,从而使您能够专注于应用程序的逻辑。

票数 3
EN

Stack Overflow用户

发布于 2010-06-18 14:45:58

在搜索引擎的具体情况下,我建议您查看Solr或Lucene。对于5-7个站点来说,Hadoop可能会过度杀戮。增量索引是可能的,还可以向每个可搜索的事物添加特定的元数据。

我可以想象,这些站点也会在RSS提要中发布大量内容,您可以使用RSS提要来保持索引的更新速度,而不是不断地爬行它们。

搜索引擎本身允许所有有趣的方式,使你的结果得到惊人的快速后处理或立即显示给你的用户。

对于并行化,JSR-166y包(java.util.concurrent)中有很好的支持,如果您坚持建议的模式之一,就可以不让人头疼地进行并行化。它们真的很好用。

只是一些想法。

票数 1
EN

Stack Overflow用户

发布于 2010-06-18 14:39:33

使用谷歌?)

瓶颈将是下载信息,多线程将有所帮助。

否则,只下载html。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3070502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档