1 翻页的问题,ES里有上亿数据,翻到最后一页的时候还是会比较慢,并且会影响到整个系统的load,然后系统响应变慢。因为其原理还是拿一堆数据来做merge。
2 从传统的sql思维翻译到es的dsl过程也稍微有点痛苦。因为ES毕竟是从搜索引擎的角度去做这些事情,所以如果当DB来用的话,其DSL设计就显得很别扭。虽然有了上面的转换规则,但实际上业务转换起来并没有这么方便,比如在通常的查询里还可能会有where a = 1 or b = 2。显然想转成DSL就没有这么方便了。
3 ES不是数据库,所以如果想要实现联表查询也会变得很麻烦。如果还想实现事务,那么还是放弃吧。
4 在企业里用ES提供查询服务的话,一般都会做一层查询封装。直接提供sql接口。例如下面的这
https://github.com/NLPchina/elasticsearch-sql
5 在需要添加新数据与新字段的时候,如果elasticSearch进行搜索是可能需要重新修改格式。之前的数据需要重新同步,对数据的管理有很多困难
6 读写有一定延时,写入的数据,最快1s中能被检索到
