请教下 ElasticSearch 开发相关问题

2020-11-09 20:15:07 +08:00
 hush3

最近要在项目中上 es 了,对于一些开发上的选择不知如何决定,是否有类似 Java 开发规范一样的 es 规范?

主要用于非日志数据的存储与检索,有如下 2 个问题:

1 ES 中可以使用动态模板,但对于一个索引中确定的字段,是像 mysql 一样把字段都写在 mapping 中,基本不使用动态模板,还是依赖动态 mapping 去生成?(规定好一个全局动态模板)

2 ES 中推荐使用别名,但插入数据时需要真实索引名,在开发中是否有必要一定要上别名?如果要上的话,别名与真实索引名的对应关系是不是应该硬编码在某个地方?(没有查到怎么根据别名查对应索引名...)

868 次点击
所在节点    问与答
3 条回复
gtexpanse
2020-11-09 20:44:03 +08:00
1. 尽量一开始就指定 mapping 类型,因为数据量大了之后肯定要考虑这个问题
2. 插入数据没限制真实索引名啊(莫非是新特性?),别名建议读写分离两个别名,后期 rebuild 全靠别名
alexfarm
2020-11-09 20:46:56 +08:00
索引量较大建议按日拆分索引,那就需要别名了
hush3
2020-11-10 14:02:45 +08:00
@gtexpanse 比如还没采用按日期分索引,一个索引叫 idx_user 给他弄个别名叫 user 的话 我在代码里就要针对查询操作,使用 user 作为索引名的参数, 针对插入数据的操作,使用 idx_user 作为索引名参数,是这样吗? 那是不是就要有个地方保存这两个名字之间的对应关系...
另外后期加个字段,不给之前旧的索引加,或者干脆使用 update_by_query 批量加可不可以呢?一定要 reindex 吗?

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

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

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

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

© 2021 V2EX