1、引言
实战业务场景中,经常会遇到定义空值、检索指定空值数据的情况。
这时候,当我们翻看官方文档 null_value 部分,会看到如下的描述:
Accepts a string value which is substituted for any explicit null values. Defaults to null, which means the field is treated as missing.
接受一个字符串值替换所有显式的空值。默认为null,这意味着该字段被视为丢失。
A null value cannot be indexed or searched. W
现在几乎网上所有资料都说数据存储在传统数据库,再在 es 中同步一份数据作为检索使用,但是也都没有很详细的说明为什么要这么做,而且在 es 本身可以存储数据的情况下,存储两份数据是不是没有必要?还会引起别的问题。
虽然收费而且支持的语法不完全,但是在现在 es 已经支持 sql 的情况下,我越来越搞不清楚 es 和数据库之间的界限。
es 不支持事务但是能够确保单条数据的写入,这样事务可以通过代码实现。很难进行联合查询可以像其他 nosql 一样用宽表实现。实时性可以通过配置调整,而在扩展性能和复杂统计上肯定 es 更优。
基于以上疑问,请问现阶段 es 与数据库的区别或者说界限到底在哪