对于ElasticSearch和图数据库之间的比较,我在网络上找不到任何深入的解释。
两者均经过优化以遍历数据。
ElasticSearch似乎已针对分析进行了优化。
但是Neo4j也基于Lucene来管理索引和一些全文功能。
如果已经使用图形数据库,为什么还要使用ElasticSearch?
就我而言,我正在使用Neo4j建立社交网络。
ElasticSearch可以带来什么真正的好处?
更新----------
我刚刚找到了这一段:
在无数情况下,elasticsearch是有用的。一些用例比其他用例更明确地要求它。下面列出了一些特别适合Elasticsearch的任务。
- 在大量产品说明中搜索特定词组(例如“厨师的刀”)的最佳匹配,并返回最佳结果
- 以前面的示例为例,分解出现“厨师的刀”的各个部门(请参阅本书后面的分面)
- 在文本中搜索听起来像“季节”的单词
- 在考虑到拼写错误的情况下,根据先前发布的搜索结果,根据部分键入的单词自动完成搜索框
- 以分布式方式存储大量的半结构化(JSON)数据,并在整个计算机集群中具有指定级别的冗余
但是,应该注意的是,尽管Elasticsearch在解决上述问题方面很出色,但对于其他人来说并不是最佳选择。解决关系数据库已优化的问题尤其困难。问题如下。
- 计算库存中剩余多少物品
- 计算给定月份发出的所有发票上所有行项目的总和
- 通过回滚支持以事务方式执行两个操作
- 创建保证在多个给定条件下唯一的记录,例如电话号码和分机号
- Elasticsearch通常非常擅长提供数据的近似答案,例如按质量对结果进行评分。虽然Elasticsearch可以执行精确的匹配和统计计算,但其主要搜索任务是固有的近似任务。
- 查找近似答案是一种将Elasticsearch与更多传统数据库区分开的属性。话虽这么说,传统的关系数据库在精度和数据完整性方面都非常出色,而Elasticsearch和Lucene对此几乎没有规定。
我是否可以断言,如果我不需要近似答案,那么与已经使用的图形数据库相比,ElasticSearch会毫无用处吗?