我很难理解collections 和 cores之间的区别。如果我理解正确,核心是多个索引。集合由核心组成,因此本质上它们在分离方面共享相同的逻辑,即单独的核心和集合具有单独的端点。
我有以下情况。我为几个在线商店创建了一个云服务后端。每个商店都有一组产品,客户可以在其中添加评论。我想将静态数据(产品信息)与动态信息(评论)分开索引,以便提高性能。
我怎样才能最好地在 Solr 中分离???
集合:单个搜索索引。
Shard:单个集合的逻辑部分(也称为 Slice)。有时人们会从物理意义上讲“Shard”(逻辑分片的一种表现形式)
副本:逻辑 Shard 的物理表现形式,实现为 SolrCore 上的单个 Lucene 索引
Leader:每个 Shard 的一个 Replica 将被指定为 Leader 来协调对该 Shard 的索引
SolrCore:封装单个物理索引。一个或多个组成一个集合的逻辑分片(或切片)。
节点:Solr 的单个实例。一个 Solr 实例可以有多个 SolrCore,它们可以是任意数量的集合的一部分。
集群:您用于托管 SolrCores 的所有节点。
所以基本上一个集合(逻辑组)有多个核心(物理索引)。
另外,检查讨论
核
在 Solr 中,acore
由一组配置文件、Lucene 索引文件和 Solr 的事务日志组成。
Solr 核心是在 Solr 服务器中运行的唯一命名、管理和配置的索引;Solr 服务器可以托管一个或多个内核。核心通常用于分隔具有不同模式的文档
收藏
Solr 也使用术语collection
,它仅在 Solr 集群的上下文中有意义,其中单个索引分布在多个服务器上。
SolrCloud 引入了 a 的概念collection
,它将唯一命名、管理和配置的索引的概念扩展到一个被拆分为碎片并分布在多个服务器上的索引。
据我了解:
在分布式搜索中,
集合是分布在多个服务器上的逻辑索引。 核心是运行一个集合的服务器部分。
在非分布式搜索中,
运行 Solr 的单个服务器可以有多个集合,每个集合也是一个核心。所以如果搜索不是分布式的,那么集合和核心是相同的。
概括
单实例
在单个实例上,Solr 有一个叫做 SolrCore 的东西,它本质上是一个单一的索引。如果您想要多个索引,则创建多个 SolrCore。
索尔云
使用 SolrCloud,单个索引可以跨越多个 Solr 实例。这意味着单个索引可以由不同机器上的多个 SolrCore 组成。我们将构成一个逻辑索引的所有这些 SolrCore 称为集合。
集合本质上是一个跨越多个 SolrCore 的单个索引,用于索引缩放和冗余。如果您想将您的 2 SolrCore Solr 设置移动到 SolrCloud,您将拥有 2 个集合,每个集合由多个单独的 SolrCore 组成。
来自Solr 维基:
集合由一个或多个分片组成。分片有一个或多个副本。每个副本都是一个核心。单个集合代表单个逻辑索引。
来自 Solr 文档:
用法:solr create [-c name] [-d confdir] [-n configName] [-shards #] [-replicationFactor #] [-p port] [-V]
根据 Solr 是以独立(核心)还是 SolrCloud 模式(集合)运行来创建核心或集合。换句话说,这个动作检测 Solr 运行的模式,然后采取
适当的动作(create_core 或 create_collection)。