Solr 集合与核心

Posted

技术标签:

【中文标题】Solr 集合与核心【英文标题】:Solr Collection vs Cores 【发布时间】:2013-06-07 08:01:12 【问题描述】:

我很难理解集合和核心之间的区别。如果我理解正确,核心是多个索引。集合由核心组成,因此本质上它们在分离方面共享相同的逻辑,即单独的核心和集合具有单独的端点。

我有以下情况。我为几个在线商店创建了一个云服务后端。每个商店都有一组产品,客户可以在其中添加评论。我想将静态数据(产品信息)与动态信息(评论)分开索引,以便提高性能。

如何在 Solr 中最好地分离???

【问题讨论】:

【参考方案1】:

来自 Solr 文档:

用法:solr create [-c name] [-d confdir] [-n configName] [-shards #] [-replicationFactor #] [-p 端口] [-V]

根据是否运行 Solr 创建核心或集合 独立(核心)或 SolrCloud 模式(集合)。换一种说法, 此动作检测 Solr 运行在哪种模式下,然后采取 适当的操作(create_core 或 create_collection)。

【讨论】:

【参考方案2】:

这解释了核心和集合的使用。

单实例

在处理单个 solr 实例时,您查询到 cores

单个 Solr 实例的管理 UI 没有集合选择器:

Solr 云

在处理 Solr Cloud 时,您可以查询 collections。 这些集合被组织在不同 solr 实例上的不同核心(副本、分片)中。

Solr Cloud 实例的管理 UI 有一个集合和核心选择器。但核心在技术上是实例,这里:

【讨论】:

【参考方案3】:

单实例

在单个实例上,Solr 有一个叫做 SolrCore 的东西,它本质上是一个单一的索引。如果需要多个索引,则创建多个 SolrCore。

Solr 云

使用 SolrCloud,单个索引可以跨越多个 Solr 实例。这意味着单个索引可以由不同机器上的多个 SolrCore 组成。我们将构成一个逻辑索引的所有这些 SolrCore 称为集合。

集合本质上是一个跨越多个 SolrCore 的单一索引,用于索引缩放和冗余。如果您想将您的 2 SolrCore Solr 设置移动到 SolrCloud,您将有 2 个集合,每个集合由多个单独的 SolrCore 组成。

【讨论】:

【参考方案4】:

来自Solr Wiki:

集合由一个或多个分片组成。分片有一个或 更多的副本。每个副本都是一个核心。单个集合代表 单个逻辑索引。

【讨论】:

【参考方案5】:

来自SolrCloud Documentation

集合:单个搜索索引。

Shard:单个集合的逻辑部分(也称为 片)。有时人们会从物理意义上谈论“Shard” (逻辑分片的表现形式)

副本:逻辑分片的物理表现,已实现 作为 SolrCore 上的单个 Lucene 索引

Leader:每个 Shard 的一个 Replica 将被指定为 Leader 该 Shard 的坐标索引

SolrCore:封装单个物理索引。一种或多种化妆 组成集合的逻辑分片(或切片)。

节点:Solr 的单个实例。单个 Solr 实例可以具有 多个 SolrCore 可以是任意数量的集合的一部分。

集群:您用于托管 SolrCores 的所有节点。

所以基本上一个集合(逻辑组)有多个核心(物理索引)。

另外,请查看discussion

【讨论】:

什么是搜索索引?【参考方案6】:

据我了解:

在分布式搜索中

集合是分布在多个服务器上的逻辑索引。 核心是运行一个集合的服务器部分。

在非分布式搜索中

运行 Solr 的单个服务器可以有多个集合,每个集合也是一个核心。所以如果搜索不是分布式的,collection 和 core 是一样的。

总结

    每个服务器的集合称为核心。 集合与索引相同。 一个 Solr 服务器可以有多个内核。 集合是一个逻辑索引(多个集合的示例用法:假设同一组中的两个团队不足以证明他们自己的完整 Solr 服务器是合理的。但他们也不想将他们的数据混合在一个索引中。然后,他们可以创建单独的集合/索引,将他们的数据分开)。 如果集合的数据足够大,最好使用单独的 Solr 云而不是创建集合(不确定,请 cmets?)

【讨论】:

【参考方案7】:

核心

在 Solr 中,core 由一组配置文件、Lucene 索引文件和 Solr 的 交易记录。

Solr 核心是 在 Solr 服务器中运行的唯一命名、管理和配置的索引; Solr 服务器 可以承载一个或多个核心。核心通常用于分隔具有 不同的架构

收藏

Solr 也使用术语collection,它只在上下文中有意义 Solr 集群,其中单个索引分布在多个服务器上。

SolrCloud 引入了 collection 的概念,它扩展了唯一的概念 命名、托管和配置的索引到一个被拆分为分片并分布的索引 跨多个服务器。

【讨论】:

以上是关于Solr 集合与核心的主要内容,如果未能解决你的问题,请参考以下文章

Solr创建集合错误

Solr:如何删除一个集合?

solr教程无法创建集合

如何更新 Solr 集合中的字段名称?

使用JUnit4编写Solr插件的单元测试,包括创建集合

在solr中查询具有不同字段的多个集合