这个问题很难回答,es也可以理解成是一种数据库,不仅能提供全文检索功能,还可以支持各种数值类的区间查询,聚合计算等,这些和传统数据库一样,从使用场景来说,数据库一般用来存meta,比如网站用户,用户资源等等,这些数据有个特点就是量不会很大,还有就是这些数据一般都比较结构化。
es一般用来存一些流式数据,比如应用日志,这也是目前es应用最广的方面,这些数据有个特点就是往往结构不固定,比如应用日志,不同的程序员写得模块打出来的日志字段数量都不一样,这种数据就不太方便用数据库来处理。
最后,一般传统数据库,全文检索都实现的很鸡肋,因为一般也没人用数据库存文本字段。
上面从使用场景上说明了两者的区别,从技术上两者全文检索的实现都差不多,无非是倒排索引,但是lucene毕竟是专业的,做了十几年了,索引效率,存储空间等都比传统数据库快很多,技术也迭代的非常快。
以上就是我总结的不同之处,希望能解答楼主的疑惑。
作者:Razzit
链接:https://www.zhihu.com/question/53063256/answer/151074607
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。