wzw
V2EX  ›  问与答

Python 50 万个 KV 数据, 用什么过滤/搜索方案搜索? (目前用 Whoosh)

  •  1
     
  •   wzw · Apr 9, 2020 · 2189 views
    This topic created in 2262 days ago, the information mentioned may be changed or developed.

    数据

    • key value
    • 例如 50 万个商品信息, dict 的 key 是固定的
    • 目前最多 50w
    • 数据是会更新的
    • 数据例子:
    p1 = {
      "brand": "Ford",
      "model": "Mustang",
      "tag": ['A','BB', 'xxx'],
      "year": 1964
    }
    

    需求

    • 在这 50 万个中, 过滤信息.(和京东的商品过滤一个的意思)

    现状

    • 数据库 SSDB(Redis)
    • 结巴分词
    • Whoosh 建立索引搜索

    请大家说说有什么比较好的方案, (数据放内存, 会不会更快)

    14 replies    2020-04-09 16:43:44 +08:00
    RHxW
        1
    RHxW  
       Apr 9, 2020
    es ?
    wzw
        2
    wzw  
    OP
       Apr 9, 2020
    @RHxW #1 es 和 Whoosh 算是类似了吧
    lzxz1234
        3
    lzxz1234  
       Apr 9, 2020
    es 支持集群是搜索的完整方案了
    SjwNo1
        4
    SjwNo1  
       Apr 9, 2020
    持续关注
    lhx2008
        5
    lhx2008  
       Apr 9, 2020 via Android
    mysql 硬顶也没事。。区分度那么大
    swulling
        6
    swulling  
       Apr 9, 2020 via iPhone
    从给的示例看,传统的关系数据库没啥不行的。
    wzw
        7
    wzw  
    OP
       Apr 9, 2020
    @swulling #6
    @lhx2008 #5

    我用的是 NoSql 数据库呀
    rrfeng
        8
    rrfeng  
       Apr 9, 2020 via Android
    50w 随便搞吧…

    tag 这种字段可以单独拆出来,如果以后会变大。当然现在这点 MongoDB 里无所谓。建好索引就行
    Vegetable
        9
    Vegetable  
       Apr 9, 2020
    50w 真随便搞,mongodb 能给你这 50w 全缓存到内存里,获得近似 redis 的体验.
    关系数据库其实也一样.
    cabing
        10
    cabing  
       Apr 9, 2020
    计算下数据占用的内存空间,假设一条数据 128 个字节。128*500k = 64000k = 54M

    假设一个 k-v 是 1.28k ,也才 540M,都是毛毛雨。

    考虑下以后的增长量有限的话,真可以随便玩了。


    自己建个字典树都没问题。。
    qlhai
        11
    qlhai  
       Apr 9, 2020
    如果就这几个字段,50 万扔 MySQL 里没问题啊
    marcushbs
        12
    marcushbs  
       Apr 9, 2020
    50w 放内存
    wzw
        13
    wzw  
    OP
       Apr 9, 2020
    @marcushbs #12 @cabing #10 @Vegetable #9

    内存肯定是够用的, 关键用什么方案呀? 有时候单个商品更新, 也需要去更新这些缓存呀.
    cabing
        14
    cabing  
       Apr 9, 2020
    @wzw 更新写队列,更新下缓存就行。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1154 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 78ms · UTC 17:28 · PVG 01:28 · LAX 10:28 · JFK 13:28
    ♥ Do have faith in what you're doing.