搜索引擎开发,垂直搜索开发探讨:蜘蛛,并行,搜索,垂直搜索,搜索开发,lucene,java,分布[原创]

来源:互联网 发布:mac极品飞车 编辑:程序博客网 时间:2024/05/29 18:08

         //UserA为yuetiantian。UserB为我。20070829mark     

       UserA 21:04:22

你好啊
UserB 21:01:02
你好阿。
 
UserB 21:01:10
你是哪位朋友阿?
 
UserA 21:04:49
呵呵,我就是那个sil
UserA 21:05:04
你的blog挺好的,学了不少东西
UserB 21:01:32
呵呵。。。。我太尖锐了
 
UserA 21:05:17
没有啦
UserB 21:01:52
你现在在公司里上班?
 
UserA 21:05:37
是啊
UserA 21:05:45
你已经创业了?
UserB 21:02:31
我也是五一之后才想到要作这个。
 
不算创业吧,就是自己在写几个项目。小得
 
UserB 21:04:32
因为编码阶段非常快,主要是设计阶段,还有一些改进很费脑子。
 
UserB 21:04:34
好得
 
UserA 21:08:19
你用什么开发
UserB 21:05:21
准备java,因为全文检索我想用lucene,但我希望他快出lucene4c
 
UserA 21:09:41
4c是什么啊
UserB 21:06:32
lucenec语言版,但目前还没出来
 
UserA 21:10:34
说了要出了么
UserB 21:07:21
有个项目在那里挂着
 
UserA 21:11:37
c支持多线程么?
UserB 21:08:57
我估计用c++写比较好。现在有c++的改写,但据说有内存漏洞
 
UserA 21:12:43
是啊
UserA 21:12:46
各有利弊
UserA 21:13:03
java虽然慢点,但是总是有优势的
UserB 21:09:35
还是cutting主持才信得过。其它人搞的,唉,啃定不好
 
UserA 21:13:26
嗯,是啊
UserA 21:13:45
我觉得已有的开源技术已经可以做垂直了
UserA 21:13:52
主要是优化和定制
UserB 21:10:25
java写东西,就是不考虑平台,而且实现很容易。用c#写东西根本不要想跨平台
 
UserA 21:14:15
我也是这样想的
UserB 21:10:43
我觉得已有的开源技术已经可以做垂直了:简直太同意了
 
UserA 21:14:29
呵呵,谢谢
UserA 21:14:44
主要是平台的整合,可配置,可扩展性
UserB 21:11:45
基本上,倒排序,分词有开源项目可用,其它就靠自己整和了,比如排序算法。
 
UserA 21:15:54
嗯,我觉得分词其实还可以在别人的基础上再做做
UserA 21:16:22
可能各行业还是有各自特点
UserB 21:13:44
当然。其实我认为,索引和分词只占搜索的5%的功夫,最主要的是:你作出的东西比同类的好50%,而且用户愿意用。而不在于你分词的准确性
 
UserA 21:17:56
50%好在什么地方呢?
UserA 21:18:13
不准的直接降低优先级,放在后面显示
UserB 21:14:56
作分词跟作搜索一样,需要漫长的改进过程,所以除非你要专业作分词,否则不要投入力气去作那个
 
UserA 21:19:22
嗯,有道理。但是我觉得这个玩意是中文搜索的核心
UserA 21:19:31
当然,没想要专搞这块
UserB 21:16:00
一些新词发现可能要配合机器学习和人工调优。。分词不简单。
 
UserA 21:19:44
现在重要的是有一整套解决方案
UserB 21:16:19
你想作什么?
 
UserA 21:20:33
垂搜平台
UserB 21:17:20
哦。。一个方案出售模式??
 
UserA 21:21:19
不算吧,可进退。
UserA 21:21:34
进就自己搞个有影响的
UserB 21:18:02
如果kooxoo的用户愿意放弃kooxoo来用你的搜索,证明你比他好50%
 
UserA 21:21:39
退就卖产品
 
UserA 21:21:50
kooxoo我查查
UserB 21:18:59
他现在有很高的流量,就证明,他作出了一个好产品。而且用户愿意用。
 
UserA 21:23:02
嗯,没错,可以向他学习,但是也没有必要怕他
UserA 21:23:10
中国企业有个通病
UserB 21:19:52
当然。只有更好,没有最好。
 
UserA 21:23:28
一定规模后就不行了,管理文化跟不上
UserB 21:20:32
ms都是,google也会这样。如我分析,这是企业发展的曲线问题。
 
UserA 21:24:45
我觉得啊
UserB 21:21:22
你准备怎么作?
 
UserA 21:25:00
没必要非要钻垂搜
UserA 21:25:13
垂搜只是其中一个部分
UserA 21:25:27
重要的是一整套行业门户的解决方案
UserA 21:25:40
行业门户必需要有一个垂搜
UserA 21:26:03
所以先要攻克这个技术最难点
UserB 21:22:33
是的。其实都差不多,基本有70%是通用部分
 
UserA 21:26:11
随着internet普及
UserA 21:26:26
以后老人小孩都要上网
UserA 21:26:31
其实现在已经是了
UserB 21:23:05
中国的资讯化很低,是的
 
UserA 21:26:59
所以,这块还是有很大的空间的
UserB 21:23:29
赞同
 
UserA 21:27:12
毕竟有一定的技术门槛
UserA 21:27:20
而且不是一两个人能做的
UserA 21:27:27
技术好的人大概要三个
UserA 21:27:45
门户,索引,爬虫
UserB 21:24:11
门槛不在技术。在资金,在持续改进。Baidugoogle刚出来也不好,逐渐改进而成。这个过程好象铁人三项。
 
UserA 21:28:09
有了样板后,资金总会有的
UserB 21:24:49
非你所想的那么容易
 
UserA 21:28:52
呵呵,可能也没有你想的那么难
UserA 21:29:00
我看过一篇文章
UserA 21:29:30
几个人一起做了一个户外运动的社区,有垂搜,钱只花了6000
UserB 21:26:08
你看看“知信者"的文章就知道了。。他就是想得太幼稚了
 
UserA 21:30:11
我看看
UserB 21:26:54
你说得不过是web2.0的暴发户,真正的垂直搜索不是你说的那样。
 
UserA 21:30:57
嗯,我在听
UserA 21:31:24
那应该是?
UserB 21:28:00
你可以算算服务器成本,托管成本,开发成本(算两年时间,五个工程师),你算算支撑两年要多少钱??
 
UserA 21:32:23
服务器他们用的是3000块不到的二手,不托管,直接接在自己的宽带上,开发自己也余搞
UserA 21:32:37
业余搞
 
UserB 21:29:20
至少要100W.对吧
土枪土炮,营运时不行。
 
UserA 21:32:56
当然这些也是成本,所以自己有技术的话会省很多钱
UserB 21:30:19
创业时会可怜到吃饭的钱都没有,你没读过xunlei的创业史??
 
UserA 21:34:15
嗯,还没读,有空可以读读
UserA 21:34:37
是这样的,我们这个项目现在计划是在业余时间完成
UserA 21:34:42
大概一年
UserA 21:35:12
卖便宜点总有人要吧
UserA 21:35:19
希望能有个样板站
UserA 21:35:23
后面就好搞了
UserB 21:31:58
放在自己的宽带上测试是可以的。但只限于测试,要营运,就要速度。比如日IP10W50WIP自己的宽带怎么可以呢?
 
UserA 21:36:06
嗯,你说的这个还没有考虑
UserA 21:36:20
因为没有想到会有那么大的访问
UserA 21:36:45
还有,考虑过分布服务器怎么实现了么
UserB 21:33:13
如果你有30pc来处理,你算算你该交多少电费?
 
你考虑的问题我通通考虑了一下
 
UserA 21:37:03
嗯,good question
UserA 21:37:19
我们现在还停留想法阶段
UserA 21:37:36
我觉得就光可行性研究就能让一大批人却步
UserB 21:35:08
我写了一个19页的开发说明,已经回答了用户提出的问题,回答了我自己提出的问题。正如我在<<垂直搜索引擎开发全过程>>中写到的,哪一步走不通,都是灭顶之灾。
 
UserA 21:38:48
我今天在考虑分布式搜索的架构
UserA 21:38:57
嗯,你说的没错
 
UserA 21:39:20
你更多的是从运营,自己当老板的角度考虑
UserA 21:39:32
有暴富的理想
UserB 21:36:11
假设我说你现在作起来了,每天有IP10W,你就需要改进和发展业务,这时就需要钱?没有钱你能作下去吗?
 
UserA 21:39:52
我还只是从技术角度考虑,希望提供可行的平台
UserA 21:40:05
对,你说的很多
UserA 21:40:25
我觉得如果你自己做搜索的技术的话,你最好不要考虑这么多
UserA 21:40:33
专注于一块
UserA 21:40:54
如果你考虑运营的话,倒是非常的应该这么仔细
UserB 21:38:20
看你怎么定位了.如果你作到baidu的技术,自然有人找你。这个的确靠出售技术也是一个途径
 
UserA 21:42:08
百度技术一般
UserA 21:42:22
百度很多是在做各种优化
UserA 21:42:35
因为他硬件资源充足
UserA 21:42:48
所以可以忽略某些细节
UserB 21:39:19
只要结果好就行,技术没有数量级的差异。
 
UserA 21:43:02
有的
UserA 21:43:14
我个人感觉baidu中文不如google
UserA 21:43:28
毕竟他的人才只是二流的
UserB 21:39:58
因为算法不一样,侧重点不一样,有参照自然有好坏之分。
 
UserA 21:44:11
其实我的想法是,稳妥点,不要一下子投入太多做运营
UserA 21:44:35
最好是能提供整套的解决方案,整合信息资源,聚集人气
 
UserA 21:44:52
然后再图发展
UserB 21:41:24
好比你的想法,你是作技术的,每个人都不愿意出来作运营,谁来买技术呢?
 
UserA 21:45:29
我的意思是量力,比如说我没有钱,我就先做技术
UserA 21:45:42
有钱了,也要省着点用
UserA 21:45:48
坚持不到时间就麻烦了
UserB 21:42:21
你请一个工程师,他一年的生活费就得1W块?如果不盈利,不加快速度,生存是问题阿。
 
UserA 21:46:13
所以啊,最好不要请
UserA 21:46:21
自己做一部分
UserA 21:46:30
找朋友合作
UserB 21:43:15
搜索在未来3-10年是黄金期,现在不作起来,怎么可能赚钱呢?
 
UserA 21:47:06
对,没错
UserA 21:47:18
机会很多,赚钱的机会永远有
UserA 21:47:25
只要有你自己的特点
UserB 21:44:22
现在包括yahoo,sohu,google,ms,baidu在技术上还没有大得突破,如果他们那在技术上有大突破,那搞一个垂直搜索意义就不大了
 
UserA 21:48:27
我看技术上他们已经相当成熟了
UserA 21:48:46
现在的问题是他们没有那么多精力涉及各个领域
UserB 21:45:15
成熟就是说在现在得基础上无法突破了。
 
UserA 21:48:58
UserB 21:45:38
无法更深层次得提高用户满意度了
 
UserA 21:49:36
 
UserB 21:46:52
我得思路是挂起来,撑到10WIP,然后找人合伙,注资阿。。。并不是要自己运营
 
UserA 21:50:53
你一个人开发?
UserB 21:47:38
而我自己可以把握技术核心。流量和业务起来了以后,我强壮起来了,再图发展
 
UserB 21:48:06
现在还在架构阶段,目前只有自己一人。
 
 
UserA 21:52:32
嗯,不错,有机会希望能和你讨论技术方面的问题。
UserB 21:49:18
你知道流水线吗?
 
UserA 21:53:09
听说过,不知道你特指哪一方面的
UserB 21:50:09
工厂里用于组装加工得流水线。其实,流水线模式就是分布式,并发模式
 
UserA 21:54:25
你稍等
UserA 21:54:55
我不同意你的观点
UserB 21:51:48
why
 
UserA 21:55:30
我的理解啊
UserB 21:52:05
你是怎么理解的?
 
UserA 21:55:54
流水线只是最简单的并行
UserA 21:56:00
但不是分布式
UserA 21:56:17
他在任意时刻只有一个中心处理器
UserA 21:56:38
而分布式的基本特点是有多个中心处理器进行并行处理
UserB 21:53:40
我的流水线不可以有多条吗??
 
UserA 21:57:16
我去洗个澡,再来,认识你很高兴。
UserA 21:57:49
对,分布式就是解决你这个多条的办法,我5分钟回来。
 
UserA 22:04:42
回来了
UserA 22:05:04
继续
UserB 22:02:06
如果公司接到100w的定单,肯定是分派给10条流水线去作。
 
UserA 22:05:56
UserB 22:02:47
一个流水线有一个拉长,一个搞包装,但作组装的可能是20个人,知道为什么吗?
 
UserA 22:06:56
不用花时间在切换上
UserB 22:03:40
不是,有个工作单位时间的问题。
 
UserB 22:04:32
如果某个动作只需要1s,那一个人来作就可以了,而另外一个工序需要10s来作,则需要10个人,才能保证流水线最大效率
 
UserA 22:08:17
嗯,明白,系统结构里面有讲
UserA 22:08:32
你的流水线例子是一个好的想法
UserA 22:08:49
这就是为什么很多服务器都分层
UserA 22:09:00
web-流程-数据库
UserA 22:09:09
等等,都是这个道理
UserB 22:05:55
所以,我们的蜘蛛由于效率低,就会开多线程,而且派很多蜘蛛同时抓,索引很慢,也会用多个电脑同时索引,而总控部分可能只需要一个,因为他不是瓶颈
 
UserA 22:09:47
但我的意思是指如何来协调
UserA 22:09:56
我觉得你这个就有问题了
UserB 22:06:32
基与任务负荷和总任务而定阿。
 
UserA 22:10:21
分布式就是为了系统可扩展和动态负载均衡
UserA 22:10:48
你蜘蛛可以同时抓,怎么协调他们工作,不重复?
UserB 22:07:29
呵呵,你连这个问题还没想好?
 
UserA 22:11:09
数据库多台,怎么保证立刻找到你需要的那台提取数据
UserA 22:11:28
对,我想听听你的看法
UserA 22:11:46
怎么把用户的访问平均分配到多个webserver
UserB 22:09:37
如果有1Wurl,如果批量设置为300,10个蜘蛛,按蜘蛛申请并有总控制台分配,并标记,蜘蛛可以退定任务,如果蜘蛛完成任务,写入某联接已经完成抓取。
 
UserB 22:10:37
用户访问是属于负载平衡问题。呵呵,我都有简单想过一下
 
UserA 22:14:41
蜘蛛一从A网站抓到B站,蜘蛛二从C站也抓到B
UserA 22:14:44
怎么解决
UserB 22:11:37
URL在分析出来时,就要去重的??你不知道,而且要唯一编号
 
UserB 22:12:12
化柏林的论文你没看?
 
UserA 22:15:58
我看资料上不是说蜘蛛从一个页面,抓,再抓该页面的所有链接么
UserA 22:16:08
没看啊,哪里可以看
UserB 22:13:05
呵呵,我就收录了他的论文,这是必看的
 
UserA 22:16:52
化柏林?
UserA 22:16:58
查不到该人
UserA 22:17:31
正在看
UserB 22:15:01
蜘蛛只是负责抓取页面,有专门的联接锚点分析器,生产者,消费者模式
 
UserA 22:18:44
我看了
UserB 22:15:32
蜘蛛又要抓,又要分析,怎么会有效率
 
UserA 22:19:39
除非锚库只有一个
UserB 22:17:11
这儿不重要。比如google中国机房和美国机房不会抓重复的,他们从URL上就有区分吧,我这么想的
 
UserA 22:21:25
UserA 22:21:42
那你的构架,也就是做到流水线
UserA 22:21:50
哪些东西是分布的呢?
UserB 22:18:23
只是抓好了,作好索引后,再合并索引即可
 
UserA 22:22:01
资料库应该是吧
UserA 22:22:21
索引库也可能是吧
UserB 22:18:53
蜘蛛,分析器,学习器,这些部件都是分布的吧
 
UserB 22:19:04
索引也可以分开作。
 
UserA 22:22:41
对,蜘蛛的问题好解决
UserA 22:23:00
索引如何分开做?具体有想过如何实现么
UserA 22:23:08
静态分配?
UserB 22:19:43
你不知道索引可以分开作?
 
UserA 22:23:32
不知道啊,请赐教
UserB 22:20:07
可以分开作,然后合并
 
UserA 22:24:04
索引服务器一台还是多台
UserB 22:20:35
google64个桶。都是分开的概念。好好看看
 
UserA 22:24:39
好的,谢谢
UserB 22:21:22
因为google资料太多,索引和查询应该都是分布式的。
 
UserA 22:25:12
等我看了这些资料再继续请教
 
UserB 22:22:24
关键是拆解任务。比如中国共产党,中国,共产党,两个词分别在两台查询,我想也是可以的
 
UserB 22:24:11
需要看上千份资料吧,我估计已经看了一千份资料
 
UserA 22:28:03
哈哈,强,我才一百份
UserA 22:28:17
越到后面,有价值的越难找
UserB 22:24:44
我转载的是觉得很好的,才转载的。
 
 
UserA 22:28:32
嗯,你转的都不错
UserA 22:28:53
我看你的工作量不小
UserB 22:25:19
通常我都看到google40页以后
 
UserA 22:29:14
有毅力,向你学习
UserB 22:26:45
基于第四层交换技术的负载均衡(转载减压分流:谈IDC机房的负载均衡服务() 这个是关于负载的
 
UserA 22:30:49
我论文做过负载均衡的东西
UserB 22:27:38
其实你问的问题,我也在问自己,所以就每天搜索一些主题看看,作到架构阶段心理有数
 
UserA 22:31:16
集中调度,信息收集,任务分法
UserA 22:31:49
听你今天讲了这么多,看来要做个好的,不容易
UserB 22:28:13
对。只要任务能分解。pc也能作搜索的关键在这里。
 
UserA 22:32:25
UserB 22:29:45
作搜索的电脑只要求内存大,其它都不在乎
 
UserA 22:33:44
呵呵,硬盘?
UserB 22:31:32
硬盘不是关键。我的文件会集中存放,索引的肯定用scsi.其它用旧的都可以
 
UserA 22:35:27
 
UserA 22:35:33
不错
UserB 22:32:30
我不是想省什么,因为存放资料的化:电脑不能关机,二来必须配UPS
 
UserA 22:36:21
嗯,对的
UserB 22:33:33
因为我还要设计任务平衡,一些pc可能休眠或关机。等用时再唤醒它
 
UserA 22:37:35
牛,这个都想到了
UserA 22:37:43
为啥非要pc
UserA 22:37:49
刀片不行么
UserA 22:37:59
系统就用linux
UserA 22:38:02
随便跑
UserB 22:34:47
因为你可以花2000块配到一个pc,但你要配到一个服务器非得2w
 
UserA 22:38:51
我查查
UserB 22:35:45
而一个服务器是单路径,而我的10pc是冗余路径。
 
UserA 22:39:44
冗余路径是什么
UserB 22:36:20
呵呵。想想
 
UserA 22:40:43
数据与服务器间的所有路径均为冗余路径,即便出现组件或路径故障,也可以执行连续性操作。使用路径管理软件,可以在发生路径故障时,在冗余路径间进行选择。
UserA 22:41:16
这个你可就搞复杂了
UserA 22:41:26
pc我估计还是不行
UserB 22:37:54
如果一台服务器的当机概率是1%,则我10台电脑全部当机的概率就是百万分之一。
 
UserA 22:41:43
问题是你成本啊,维护就上去了
UserA 22:42:01
电,空间,管理软件
 
UserB 22:38:57
关键是,服务器再牛,其实计算能力比不上10pc,任务能拆,但服务器无法分身。当然我们的钱不够买16G ECC内存和四个CPU。一个人在强也担不了1000斤,因为会出现瓶颈。
 
UserA 22:42:59
如果你的网站已经到了不能当机10分钟的情况了,那时你根本不缺钱
UserA 22:43:12
所以用不着怕服务器当机
UserB 22:39:57
我是说的线下部分。线上部分当然是机架式。呵呵
 
UserA 22:43:49
哦,那倒是
UserA 22:44:13
强人啊
UserB 22:40:48
不能这么说
 
UserA 22:44:32
别客气了
UserB 22:41:49
我花1W块就可以获得很大的计算能力,按你的思路,可能需要10W
 
UserA 22:46:08
嗯,你的思路是对的
UserB 22:42:45
我还计划配置400/台的电脑呢?
 
UserA 22:47:18
我晕,怎么配
UserB 22:43:57
这个保密。你自己想想,我对电源管理,市电断电,开关电源保护措施都考虑了一下。
 
UserA 22:48:07
这个牛呢
UserB 22:44:47
蜘蛛根本不需要计算能力。
 
UserB 22:45:15
主要是数量要多。
 
UserA 22:49:02
为啥
UserB 22:45:42
因为html返回需要等待。
 
UserA 22:50:01
哦,原来如此
UserB 22:46:37
google的秘诀就在这里
 
UserA 22:51:07
又学了知识了
UserB 22:48:00
这些在那些文章里都有阿,看你去总结了
 
UserA 22:52:03
还没来得及看
UserA 22:52:10
关注这块才1个星期 
UserB 22:48:42
呵呵。。这样阿。
 
UserA 22:52:34
是啊
UserB 22:49:38
你行阿。不错阿。我也才看概念性的东西。
 
UserA 22:53:24
我晕
UserB 22:50:04
不过我已经写了蜘蛛,作了抽取。
 
UserA 22:54:00
厉害
UserA 22:54:05
我还在看java
UserB 22:50:31
目前正在学java
 
UserB 22:50:45
准备2个月学会,但只到会看代码的程度。呵呵
 
UserB 22:52:03
边学边用,学起来才快
 
UserA 22:55:44
对的
UserA 22:56:09
那你蜘蛛用啥写的
 
UserB 22:53:04
蜘蛛用c#写的
 
UserA 22:56:50
SQL?难在何处
UserB 22:53:23
难在提高。
 
UserA 22:57:15
c#我也用过,但是考虑到太多开源的用java,所以也要转
UserB 22:53:57
是。java是我的目标
 
UserA 22:57:42
好的,一起努力吧
UserB 22:54:15
主要是要跑linux,要用lucene
 
UserA 22:57:57
没错
UserB 22:55:50
不过你还得定一个目标比较好。如果太宽泛得目标没用
 
UserA 22:59:49
嗯,是的
UserB 22:56:56
因为我们情况相同,不想投入人力和钱,又想有成就。就得另辟蹊径
 
UserA 23:00:49
没错,没错
UserB 22:57:57
我得目标就是企业和产品检索系统,而不是搜索,是检索
 
UserA 23:02:11
类似于内部检索?
UserB 22:59:10
就是说更单一,更准确,但系统目标小。趋向于工具性
 
UserA 23:02:56
嗯,明白
        
UserB 22:59:53
这样我用20pc,2TB容量足与完成,而且成本不高。
 
UserA 23:03:49
而且不需要怎么更新
UserB 23:01:12
不是得。电话号码每月更新一次,而且要动态校验。企业和产品要七天更新一次,供求信息要每天更新一次。。。非你所想
 
UserB 23:01:37
难度很大得。
 
UserA 23:05:34
原来如此,有客户提出这样的需求了么
UserB 23:02:24
中国的600w企业就是我的目标客户
 
UserA 23:06:25
有意向的客户么
UserB 23:03:14
web open 查询阿。。。呵呵