TypeAhead

作者: 尚无花名 | 来源:发表于2019-03-15 00:49 被阅读0次
    什么地方会用到type ahead:

    google suggestion
    Twitter typeahead

    如何估算

    假设 500M user DAU
    Search 4 * 6 * 500m = 12b (每个用户搜6次,输入4个字母)
    QPS = 12b / 86400 ~= 138k
    Peak QPS = QPS * 2 ~= 276k

    需要什么Service

    查询 Query Service
    输入 Data Collection Service

    用数据库

    Select * From hit_stats
    Where keyword LIKE ""
    ORDER BY hit_count DESC
    Limit 10
    Like太费时间了
    要用空间换时间

    用prefix做,

    把每个单词的每个前缀都放进去

    Trie

    最好是用Trie
    Trie
    prefix -> hot keyword

    持久化

    Trie只能存在内存里面, 当然内存也有可能放不下
    但要持久化, Serialize, DeSerialize 放在disk上

    数据的更新:

    不能更新正在实时服务的server
    要离线更新 ,比如两周更新一次
    也要用到consistency hashing

    Log文件太大的问题,

    可能太大
    不是每次搜索都存下来,概率

    如何加速:
    1. 缓存
    2. 每次多要一点. 用javascript处理

    相关文章

      网友评论

          本文标题:TypeAhead

          本文链接:https://www.haomeiwen.com/subject/lbuqmqtx.html