V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zealinux
V2EX  ›  数据库

有没有内存数据库可以存矢量(比如 numpy 中的 ndarry)可以支持简单矢量运算

  •  
  •   zealinux · 2021-08-04 14:24:21 +08:00 · 1201 次点击
    这是一个创建于 989 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想把特征值矢量全都存 DB,一般只是存一个进去,然后与之前的所有的矢量进行比较。 拿到比较结果就行。

    不想着全部取出来,拿到应用本地再计算。就想着在数据库层面做掉。

    如果这个内存数据库能支持 ndarry 就更好了。

    6 条回复    2021-08-06 05:16:07 +08:00
    kilasuelika
        1
    kilasuelika  
       2021-08-04 14:32:06 +08:00 via Android
    不知道能不能把每个矢量作为 1 行存进数据库。
    这样每一列都是数值类型,直接比较。
    qieqie
        2
    qieqie  
       2021-08-04 16:01:28 +08:00
    Elasticsearch 的 dense_vector,ClickHouse 的 Array
    RangerWolf
        3
    RangerWolf  
       2021-08-04 23:00:37 +08:00
    https://milvus.io/
    据说很厉害
    codyfeng
        4
    codyfeng  
       2021-08-05 08:29:10 +08:00 via Android
    kdb 可能符合 lz 要求
    rainfd
        5
    rainfd  
       2021-08-05 11:41:22 +08:00
    milvus + 1
    dayeye2006199
        6
    dayeye2006199  
       2021-08-06 05:16:07 +08:00
    你要的计算功能可能是 ANN ( approximate nearest neighbor )。
    这个计算有比较多的实现
    例如[Faiss]( https://github.com/facebookresearch/faiss)
    [ANNOY]( https://github.com/spotify/annoy)

    但这些一般只管算,不管存。

    需要比较完整的数据库功能的,那就是楼上推荐的 Milvus,或者給 postgres 打插件,例如[pgvector]( https://github.com/ankane/pgvector)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4118 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 10:13 · PVG 18:13 · LAX 03:13 · JFK 06:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.