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 集合与核心的主要内容,如果未能解决你的问题,请参考以下文章