1 es默认行为,默认可搜索(index默认true),默认不存储(store默认false),默认_source开启,默认新字段加入mapping(dynamic默认true)
所以几乎不用设置mapping的properties,设置只是为了指定类型
2 es冷热分离:冷热分离为了节约成本,冷节点无写入,查询少,可低配机器
1 节点打冷热标签
2 index的初始路由设置为路由到热节点
3 几天后路由修改为冷节点(可脚本或定时任务对几天前的index修改)
3 text和keyword:字符串默认会生成text和keyword索引
text分词,可term检索,无法过滤,排序,聚合
keyword不分词,邮箱/主机名/ip等,可用于过滤,排序,聚合
4 es+hbase方案
es可支持文本检索,聚合,各种复杂查询,为什么还要加hbase?es只存检索字段和rowkey,缓解es存储压力,而hbase适合于海量数据存储,大数据量下hbase明显性能好,若es返回doc数量多/单个doc数据量大,加入hbase查询返回更快
如何保证hbase和es的一致性呢?客户端监控里由于要求不高,没有做这个处理,可以在es写入失败后发mq异步重试,达到最终一致性