• 请不要在回答技术问题时复制粘贴 AI 生成的内容
beryl
V2EX  ›  程序员

ES 动态字段过多问题

  •  
  •   beryl · Sep 7, 2021 · 1763 views
    This topic created in 1739 days ago, the information mentioned may be changed or developed.

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

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

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

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

    另外感觉需要注意的就是 需要 id 或者什么来表明不同索引内的是同一条记录
    cco
        5
    cco  
       Sep 7, 2021
    试试 hbase + es 配合使用呢? ES 存 rowkey,Hbase 存数据。
    beryl
        6
    beryl  
    OP
       Sep 7, 2021
    @Itoktsnhc 嗯,现在准备根据业务属性拆分索引
    beryl
        7
    beryl  
    OP
       Sep 7, 2021
    @cco 目前没有 habase 技术栈,尽量不引入
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   957 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 22:45 · PVG 06:45 · LAX 15:45 · JFK 18:45
    ♥ Do have faith in what you're doing.