作者:爱我独自等待_白兔窝2013 | 来源:互联网 | 2023-05-28 11:24
我知道ElasticSearch是基于Apache Lucene构建的,但我想知道两者之间的重大差异.
1> Vineeth Moha..:
Lucene是一个Java库.您可以将它包含在项目中,并使用函数调用来引用它的函数.
Elasticsearch是一个JSON基于,分布式,网络服务器构建了Lucene的.虽然Lucene正在做下面的实际工作,但Elasticsearch为我们提供了一个比Lucene更方便的层.Elasticsearch中的每个共享都是一个单独的Lucene实例.总结一下
Elasticsearch构建于Lucene之上,并提供基于JSON的REST API来引用Lucene功能.
Elasticsearch 在Lucene之上提供了一个分布式系统.分布式系统不是Lucene所知道或构建的.Elasticsearch提供了分布式结构的抽象.
Elasticsearch提供其他支持功能,如线程池,队列,节点/集群监视API,数据监视API,集群管理等.
不确定这是否可以回答您的问题,但是每个Elasticsearch节点都包含碎片.使用Shards在节点之间分布单个Elasticsearch索引.每个Shard都在Elasticsearch Index中保存一部分文档.这些分片中的每一个都是Lucene的一个实例.因此,在根目录中,所有数据都存储在Lucene中,Elasticsearch管理交互.
2> 小智..:
除了@Vineeth Mohan的话:
高可用性: Elasticsearch是分布式的,因此可以管理数据复制,这意味着在群集中拥有多个数据副本.这样可以实现高可用性.
功能强大的查询DSL:Elasticsearch为我们提供了用于读取和编写查询的JSON接口,最重要的是Lucene.Thanks到Elasticsearch,这样您就可以在不知道Lucene语法的情况下编写复杂的查询.
Schemaless(Schema-Free):之前schema
不必定义字段(名称,值对).当您索引数据时,elasticsearch可以在运行时自动创建模式,就像魔术一样.