V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Duduchao
V2EX  ›  程序员

付费求答案:聚合搜索技术

  •  
  •   Duduchao · 2020-01-12 23:59:49 +08:00 · 2670 次点击
    这是一个创建于 1537 天前的主题,其中的信息可能已经有所发展或是发生改变。

    论坛里很多大神做了聚合搜索:dogedoge,isoyu,lookao……

    新人练手也想做个类似的当做名片

    思路:

    爬取百度、360、bing 等搜索引擎的结果,然后重新排序。

    遇到的问题:

    1、有些搜索引擎的链接是加密的,需要解析。

    网上搜了下,但解析一个链接都得 0.7 秒……

    2、爬结果、分析的时间有点长

    照我现在的思路,一个搜索耗时 2 秒左右

    对比大神的:

    dogedoge 反应神速

    isoyu,一核一 G 的云主机,一天竟然能抗住几万访问,牛

    有没有大神指导一下技术路径,不白嫖,但个人网站,投入有限,万以内

    感谢

    20 条回复    2020-01-13 20:58:40 +08:00
    ebingtel
        1
    ebingtel  
       2020-01-13 08:30:29 +08:00
    没做过,但从你的描述来看,他们的聚合搜索并不是即时的,应该是先去爬了一遍、解析好,用户访问的是直接解析好的内容……
    Alince
        2
    Alince  
       2020-01-13 10:07:48 +08:00
    同意楼上,一般这种耗费时间的脚本,都是提前跑好,做好数据存储,每次网站访问的都是提前存储好的数据
    qqqq11
        3
    qqqq11  
       2020-01-13 10:14:03 +08:00
    可是用户查的东西是千奇百怪的,他要怎么知道提前查哪些数据呢?
    monospace
        4
    monospace  
       2020-01-13 11:09:55 +08:00
    如果用户访问的是直接解析好的,那会面临:
    1、用户查询的词千奇百怪,事先要爬取哪些词?
    2、即便是已解析的内容,多久再爬取一次?随着库内的词越来越多,单服务器能行?要不要引入分布式架构?

    可以根据条件缓存,但不是事先爬了一遍。
    Duduchao
        5
    Duduchao  
    OP
       2020-01-13 12:07:56 +08:00
    @ebingtel 想做即时的
    @Alince 我搜过 dogedoge,isoyu,这两个站能搜到妈时的信息
    @qqqq11 所以想的就是用户输入关键词,我赶快爬百度等网站数据。但是有点慢
    @monospace 1、不知道用户查哪些词,所以需要即时爬取搜索引擎数据。
    2、个人网站,就算建了也访问有限
    ebingtel
        6
    ebingtel  
       2020-01-13 13:51:18 +08:00
    @monospace @qqqq11 系统应该是有个冷启动的过程,“事先爬了”应该也是通用的爬了一部分(求快的话),只要爬的&解析的够多,是能够映射到用户的一部分搜索词汇的,只是有多精确的问题……实时的从别人网站上抓,怕是对方都不会同意吧?
    realpg
        7
    realpg  
       2020-01-13 16:15:29 +08:00
    你说的 dogedoge 而论
    我搜了三个热门技术词 有关联的 拼接在一起
    0.5s 切换到搜索结果页 结果处没内容
    8.35s 以后 下面加载出来了结果
    nicoljiang
        8
    nicoljiang  
       2020-01-13 16:22:04 +08:00
    @realpg 什么词?
    Duduchao
        9
    Duduchao  
    OP
       2020-01-13 16:22:38 +08:00
    @realpg dogedoge 是站内大神做的,我这边访问一直都是一秒内,对比结果,感觉还不错
    Duduchao
        10
    Duduchao  
    OP
       2020-01-13 16:23:08 +08:00
    @nicoljiang 大神你能不能点拨下,我的思路哪里有问题啊
    realpg
        11
    realpg  
       2020-01-13 16:30:53 +08:00
    @nicoljiang #8
    再搜第二次就秒开了啊
    我就特意找的他明显不会有人搜过的词组合。
    从正在读的 vmware 手册里找了三个明显关联词

    我当时测了好几组 他显示的搜索时间是一个跟返回结果数量正相关的 在 0.2X 秒到 0.3X 秒之间
    大部分冷词组和热词组显示结果时间一致 都是 0.2X 秒到 0.3X 秒 时间只跟结果数量有关

    但是实际加载不出来的情况很多

    另外 他有预搜索机制 冷词你拷过去和在文本框打 感觉是不一样的
    realpg
        12
    realpg  
       2020-01-13 16:32:39 +08:00
    另外有一点 他有在自己的结果集中搜索的习惯 他的特殊构造多词组合的搜索结果首页与所有能找到的搜索引擎都不太一致 搜三词 首页就会有不少只含两词的结果 推测他有在自己的 cache 里面搜搜
    Duduchao
        13
    Duduchao  
    OP
       2020-01-13 16:38:20 +08:00
    @realpg 兄弟你分析的很到位。这位就是 dogedoge 的作者
    nicoljiang
        14
    nicoljiang  
       2020-01-13 16:51:57 +08:00
    @realpg 好几秒应该是不会的,而且加载不出来的情况很多...应该不会啊,不知道你是不是用了 VPN。
    Duduchao
        15
    Duduchao  
    OP
       2020-01-13 17:00:37 +08:00
    @nicoljiang 我试了 dogedoge 几十次,长句子、生僻词也搜过,速度很快,都是秒开,就是不知道大神怎么这么快
    能否指点下 微信 壹叁玖捌陆叁贰壹零壹零
    nicoljiang
        16
    nicoljiang  
       2020-01-13 18:03:34 +08:00
    @Duduchao 你这有偿,我就不断人财路了。。。
    stevenkang
        17
    stevenkang  
       2020-01-13 18:04:21 +08:00   ❤️ 1
    提供一种思路:
    1、使用浏览器插件技术收集搜索结果,然后根据用户点击情况来分析上传到服务器;
    2、其他用户搜索时推荐分析后的数据,用户可以选择推荐的,也可以查看原始搜索结果(继续执行 1 );
    3、当搜索量足够大的时候,开白名单,只搜索质量高的站点,质量低的垃圾站(阿里云、腾讯云等)一律不采集;
    4、形成自己的 OpenAPI,让个人站点、其他站点可以通过 API 上传自己的网站内容以供搜索;
    Duduchao
        18
    Duduchao  
    OP
       2020-01-13 18:09:17 +08:00
    @nicoljiang 大神真是高风亮节
    Duduchao
        19
    Duduchao  
    OP
       2020-01-13 18:13:18 +08:00
    @stevenkang 三四条可行,一二条有难度,因为聚合搜索站太多,基本都没啥流量,用户上不来
    realpg
        20
    realpg  
       2020-01-13 20:58:40 +08:00
    @nicoljiang #14
    没有使用 VPN,而且我的网络比较特殊,我忘了 dogedoge 服务器是否在境外,如果在境内,我的带宽延迟都不可能是瓶颈。
    实际上的表现是,上面的搜索框出来了,下面的结果是白页很久,然后突然更新出来。
    即使这个卡着很慢才出来,那个结果上面的时间仍然是 0.2X 0.3X 秒
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   970 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 21:54 · PVG 05:54 · LAX 14:54 · JFK 17:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.