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

除了 Elasticsearch 还有什么技术能做京东淘宝那样的属性筛选

  •  
  •   hiboshi · 2017-05-04 21:57:22 +08:00 · 6375 次点击
    这是一个创建于 2769 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前项目里用的都是 sql where 条件拼接的,爬虫一来很容易挂了,有什么解决方案么。直接 cache key 会比较多

    21 条回复    2017-05-05 12:58:07 +08:00
    gouchaoer
        1
    gouchaoer  
       2017-05-04 22:05:13 +08:00 via Android
    商品分类以及排序推荐那是非常困难的任务,没团队很难搞定的
    undeflife
        2
    undeflife  
       2017-05-04 22:11:02 +08:00
    这种筛选是给人用的 而你需要爬虫抓取的是最终的产品页 给爬虫一个单独的入口 暂时可以缓解你这个爬虫一来就挂的情形
    wudanyang
        3
    wudanyang  
       2017-05-04 22:51:25 +08:00
    solr
    hiboshi
        4
    hiboshi  
    OP
       2017-05-04 23:06:41 +08:00
    @undeflife 可是这样只能防止爬虫不能防止恶意扫站吧
    hiboshi
        5
    hiboshi  
    OP
       2017-05-04 23:07:02 +08:00
    @gouchaoer 有什么想法没有?
    pierre1994
        6
    pierre1994  
       2017-05-05 00:22:13 +08:00
    es 做不了吧
    jarlyyn
        7
    jarlyyn  
       2017-05-05 00:36:27 +08:00
    爬虫挂了,不是应该先缓存 /限制访问频率么?

    key 多也不需要你收官算吧?
    terranboy
        8
    terranboy  
       2017-05-05 00:42:38 +08:00
    把数据扁平化 ES 其实也是这个意思
    ihuotui
        9
    ihuotui  
       2017-05-05 01:06:44 +08:00 via iPhone
    静态化 freemaker ftl
    byfar
        10
    byfar  
       2017-05-05 09:00:50 +08:00   ❤️ 1
    爬虫一来很容易挂了,你确定问题出在数据库上?数据库单独放一实例上或使用云服务?

    Elasticsearch 不用的话,可以考虑一下 sphinx ( http://sphinxsearch.com/ )

    当然还是要先定位问题,找到需求点再改造。
    yanzixuan
        11
    yanzixuan  
       2017-05-05 09:04:17 +08:00
    @byfar sphinx 是静态的,es 是动态的,各有优劣。
    至于 solr 感觉配置好烦,还不如 es。
    不知道为啥 LZ 不愿意用 ES。
    byfar
        12
    byfar  
       2017-05-05 10:23:07 +08:00   ❤️ 1
    @yanzixuan sphinx 支持动态索引 ( http://sphinxsearch.com/docs/current.html#rt-indexes

    另外静态也可以改造成近时时的,看需求选择。

    Elasticsearch 没有试过,不敢评论,不过我知道很火。
    walkershow
        13
    walkershow  
       2017-05-05 10:35:29 +08:00
    我们网站都用 sphinx,快,省内存
    jianzhiyao
        14
    jianzhiyao  
       2017-05-05 10:49:33 +08:00
    if($http_user_agent ~* "spider")
    hiboshi
        15
    hiboshi  
    OP
       2017-05-05 11:53:01 +08:00
    @jianzhiyao 这样不能防止恶意爬虫
    undeflife
        16
    undeflife  
       2017-05-05 12:36:15 +08:00
    @hiboshi 恶意爬虫就 ban 掉, 设置请求频率 用运维手段是可以处理的
    你现在碰到的问题跟实现方式(拼接查询条件)并没有太大关系,爬虫一来就挂,是为什么挂? 数据库连接数太小还是查询效率太低? 如果不能找出问题真正的原因,换一种解决方案可能还是挂.
    hiboshi
        17
    hiboshi  
    OP
       2017-05-05 12:40:38 +08:00
    @undeflife 都存在,目前一部分 是想完善这部分代码段,我们的商品比较多 几十万种,爬虫部分也在封 IP 至于限制频率目前在研究 apache 的相关模块。
    undeflife
        18
    undeflife  
       2017-05-05 12:46:38 +08:00
    @hiboshi Elastic 挺好的 配置使用都很简单, 除了新版对机器配置要求高点..
    hiboshi
        19
    hiboshi  
    OP
       2017-05-05 12:51:47 +08:00
    @undeflife sphinx 呢,这个不太清楚。
    sunchen
        20
    sunchen  
       2017-05-05 12:55:00 +08:00
    属性全部扁平化,类似 tag,至于动态排序那就只能硬抗了
    hiboshi
        21
    hiboshi  
    OP
       2017-05-05 12:58:07 +08:00
    @yanzixuan
    @undeflife
    不用 ela 的原因,他们是通过接口拿数据 我们有 google 爬虫 这些属性也需要爬取的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3266 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:30 · PVG 20:30 · LAX 04:30 · JFK 07:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.