我很难理解集合和核心之间的区别。如果我理解正确,核心是多个索引。集合由核心组成,因此它们在分离时基本上共享相同的逻辑,即单独的核心和集合具有单独的端点。
我有以下情况。我为几家在线商店创建了云端服务的后端。每个商店都有一套产品,客户可以在其中添加评论。我想将静态数据(产品信息)与动态信息(评论)分开编制索引,以便提高性能。
我怎样才能最好地分开Solr ???
答案 0 :(得分:54)
收集:单个搜索索引。
Shard:单个集合的逻辑部分(也称为 切片)。有时人们会在物理意义上谈论“碎片” (逻辑分片的表现)
副本:已实施的逻辑分片的物理表现形式 作为SolrCore上的单个Lucene索引
领袖:每个碎片的一个副本将被指定为领导者 协调该碎片的索引
SolrCore:封装单个物理索引。一个或多个弥补 构成集合的逻辑分片(或片)。
节点:Solr的单个实例。单个Solr实例可以有 多个SolrCores,可以是任意数量的集合的一部分。
群集:您用于托管SolrCores的所有节点。
所以基本上集合(逻辑组)有多个核心(物理索引)。
另外,请检查discussion
答案 1 :(得分:27)
<强>核心强>
在Solr中,core
由一组配置文件,Lucene索引文件和Solr组成。
交易日志。
<强>集合强>
Solr也使用术语collection
,它只在上下文中有意义
一个Solr集群,其中单个索引分布在多个服务器上。
SolrCloud引入了collection
的概念,它扩展了唯一的概念
命名,托管和配置索引到一个分割为分片和分布的索引
跨多个服务器。
答案 2 :(得分:11)
根据我的理解:
在分布式搜索中,
集合是跨多个服务器的逻辑索引。 核心是运行一个集合的服务器的一部分。
在非分布式搜索中,
运行Solr的单个服务器可以有多个集合,每个集合也是一个核心。因此,如果搜索未分发,则集合和核心是相同的。
<强>摘要强>
答案 3 :(得分:5)
来自Solr Wiki:
集合由一个或多个分片组成。碎片有一个或 更多的复制品。每个副本都是核心。单个集合代表 一个逻辑索引。
答案 4 :(得分:4)
单一实例
在单个实例上,Solr有一个称为SolrCore的东西,它本质上是一个索引。如果需要多个索引,可以创建多个SolrCores。
Solr Cloud
使用SolrCloud,单个索引可以跨越多个Solr实例。这意味着单个索引可以由不同机器上的多个SolrCore组成。我们将构成一个逻辑索引的所有SolrCore称为集合。
集合本质上是一个跨越许多SolrCore的索引,既可用于索引扩展,也可用于冗余。如果您想将2个SolrCore Solr设置移动到SolrCloud,您将拥有2个集合,每个集合由多个单独的SolrCore组成。
答案 5 :(得分:2)
这解释了核心和集合的使用。
单一实例
在处理单个solr实例时,您查询cores
。
单个Solr实例的管理UI没有集合选择器:
Solr Cloud
在处理Solr Cloud时,您向collections
查询。
这些集合在不同的solr实例上组织在不同的核心(副本,分片)中。
Solr Cloud实例的管理UI具有集合和核心选择器。但核心在技术上是实例,在这里:
答案 6 :(得分:0)
从Solr文档:
用法:solr创建[-c名称] [-d confdir] [-n configName] [-shards#] [-replicationFactor#] [-p端口] [-V]
根据Solr是否在其中运行来创建核心或集合 独立(核心)或SolrCloud模式(集合)。换一种说法, 此操作将检测Solr在哪种模式下运行,然后采用
适当的操作(create_core或create_collection)。