ES 动态字段过多问题

2021-09-07 14:20:45 +08:00
 beryl

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

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

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

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

另外感觉需要注意的就是 需要 id 或者什么来表明不同索引内的是同一条记录
cco
2021-09-07 15:41:44 +08:00
试试 hbase + es 配合使用呢? ES 存 rowkey,Hbase 存数据。
beryl
2021-09-07 16:44:54 +08:00
@Itoktsnhc 嗯,现在准备根据业务属性拆分索引
beryl
2021-09-07 16:45:19 +08:00
@cco 目前没有 habase 技术栈,尽量不引入

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/800389

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX