V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
beryl
V2EX  ›  程序员

ES 动态字段过多问题

  •  
  •   beryl · 2021-09-07 14:20:45 +08:00 · 1300 次点击
    这是一个创建于 1198 天前的主题,其中的信息可能已经有所发展或是发生改变。

    系统将用户上传的 Excel,放在 ES 查询,供检索。但是 Excel 的表头可以自定义的,这样会导致一个索引下面的字段太多

    这种情况有什么好的优化方式么

    或者表头不映射成字段,有没有更好的存储呢

    7 条回复    2021-09-07 16:45:19 +08:00
    chendy
        1
    chendy  
       2021-09-07 14:36:13 +08:00
    直接把 excel 所有内容读出来做一个字符串保存然后搜索怎么样?
    beryl
        2
    beryl  
    OP
       2021-09-07 14:38:36 +08:00
    @chendy 需要针对表格里面的某些字段做检索,保存为一个字符串无法检索。
    Itoktsnhc
        3
    Itoktsnhc  
       2021-09-07 15:35:31 +08:00
    牺牲表头列的可读性
    做表头->col_id 的映射,col_id 自增,按照范围拆分索引 实际查询的时候从映射中获取实际的列,再到 es 中查询
    Itoktsnhc
        4
    Itoktsnhc  
       2021-09-07 15:39:21 +08:00
    @Itoktsnhc 比如 col_id (0,29) 在索引 xxx_0; col_id(30,59)在索引 xxx_1. 按照映射关系分别查询

    另外感觉需要注意的就是 需要 id 或者什么来表明不同索引内的是同一条记录
    cco
        5
    cco  
       2021-09-07 15:41:44 +08:00
    试试 hbase + es 配合使用呢? ES 存 rowkey,Hbase 存数据。
    beryl
        6
    beryl  
    OP
       2021-09-07 16:44:54 +08:00
    @Itoktsnhc 嗯,现在准备根据业务属性拆分索引
    beryl
        7
    beryl  
    OP
       2021-09-07 16:45:19 +08:00
    @cco 目前没有 habase 技术栈,尽量不引入
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4295 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:12 · PVG 18:12 · LAX 02:12 · JFK 05:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.