低估了apache solr的一些概念

时间:2016-02-09 17:32:57

标签: solr

我是Apache solr的新手,有人可以通过示例解释以下术语的含义: -

  1. Solr Core
  2. Solr Collection
  3. 逻辑与物理索引
  4. 拆分
  5. 我浏览了各种博文,但我无法理解。

1 个答案:

答案 0 :(得分:1)

术语有点随意使用,因此您可能会发现可互换地使用其中一些术语的文本。

Solr core

核心是一组生活在单个服务器上的命名文档。服务器可以有多个核心。核心可以复制到其他服务器(这是"旧式"手动完成时的复制)。

Solr Collection

集合是一组核心,从一个到多个核心。它是"这些核心共同形成整个集合的逻辑描述"。这是SolrCloud引入的,因为这是Solr第一次为您处理群集。

逻辑与物理

集合是一个逻辑索引 - 它可以跨越多个核心。每个核心都是一个物理索引(它的磁盘上有Lucene的实际索引文件)。当您与核心进行交互时,您可以与集合进行交互,并且Solr(在SolrCloud模式下)通常会(通常)隐藏所有聚类细节。

<强>拆分

由于集合可以跨越多个核心,因此分片意味着构成单个集合的文档存在于许多核心中。每个核心都是一个&#34;碎片&#34;总指数。将此与复制相比较,其中核心的副本被分发到许多Solr实例(两个核心中都存在相同的文档,而当分片文档只存在于一个核心中并且您需要所有核心都有完整的集合时)。

分片可以存储比单个服务器可以处理的文档更多的文档(或者保留在内存/缓存中以便足够快地响应)。

SolrCloud(由我添加以使这一切成为现实)

以前(并且,如果您不使用SolrCloud模式),用户在查询和配置Solr时会手动处理分片和复制。您设置复制以在多个服务器上传播相同的核心,并使用分片使Solr查询许多Solr实例以获取所有必需的文档。今天,您通常只使用SolrCloud,让Solr抽象出所有这些细节。在创建集合(numShards和replicationFactor)时,您会遇到这些术语,它告诉Solr您希望将集合分散到多少个核心,以及有多少服务器应该拥有这些核心的副本。

收藏 - &gt;在[1..N]核心之间进行分片,复制[0..M]次以实现冗余和更高的查询吞吐量。