我可以使用Elasticsearch查询数据库来代替标准数据库吗?

huwehgph  于 2023-04-20  发布在  ElasticSearch
关注(0)|答案(1)|浏览(164)

例如,MongoDB很棒,但它没有全文搜索(Atlas搜索有,但这是另一回事)。
Elastic允许对文档中的每个字段进行动态索引。因此,基本上每个字段都被索引,您可以非常快速地查询所有数据(顺便说一句,这样做好吗?只需删除大量文档并让它们全部被索引?)
所以我想,当我只需要查询数据时,没有任何变化或ACID事务-例如-给予我一个为StackOverflow公司工作的员工列表,然后添加过滤器,过滤谁在开发人员的角色中工作超过5年,然后添加全文搜索以“Dan”开头的名称。所有这些都可以通过Elastic实现。
所以也许它可以完全替代MongoDB/MySQL/Postgres/etc -只用于查询。不是吗?

b5lpy0ml

b5lpy0ml1#

是的,但是你仍然需要考虑一些事情。

  1. elasticsearch支持join,parent-child查询,与mysql相比性能很差。
  2. elasticsearch查询数据比其他数据库慢,原因是boost查询。
    1.注意aggr,比如count,distinct,存在精度问题,由于elasticsearch是用分片设计的,多个分片的聚合会很慢,而且不准确。
    1.熟练使用elasticsearch查询很重要,因为elasticsearch DSL比传统的SQL更复杂。
  3. elasticsearch比其他数据库使用更多的磁盘,原因是文本字段的分析。
    查询性能对各种数据库都很重要。

相关问题