`

Solr Collection别名

 
阅读更多
http://www.jianshu.com/p/f0b1cda72341

1. Collection别名

简单理解,Collection 的别名是在solrColud云上的Collection做的又一层包装,可以用一个别名的Collection对应后台多个实际的Collection。

优点:

1、可以将实际的Collection和客户端程序分离开来,如果实际的collection改名了,只需要更改别名即可,不需要更改客户端程序。

2、可以简化跨越多个collection查询操作,一个别名Collection可以对应一个或多个后台实际的Collection。

用处:

举个例子:

假设我们需要保存一年的一个叫solr应用程序的日志,我们前台需要完成,除当月外前几个月日志搜索和当月日志搜索。

可以这样设计,一个月数据保存在一个Collection上,建立一个别名假设叫CollectionOld指向除当月外其他的月的Collection,

每当新建一个Collection的时候,我们就默默的更改别名多指向一个月的Collection;

新建另外一个叫CollectionNow的Collection指向当月的Collection,每次新建一个的时候就调整这两个匿名的Collection即可。

1、先用如下命令创建一个CollectionOld

/admin/collections?action=CREATEALIAS&name=CollectionOld&collections=solrCollection_201601,solrCollection_201602,solrCollection_201603

到了四月份新建一个solrCollection_201604

2、 新建一个Collection后执行命令:

1)  /admin/collections?action=DELETEALIAS&name=CollectionOld  删除原来别名。

2)/admin/collections?action=CREATEALIAS&name=CollectionOld&collections=solrCollection_201601,solrCollection_201602,solrCollection_201603,solrCollection_201604 创建新的匿名。

通过以上方式设计好处:

1、可以将非当月的大量的不变的数据和当月小量的实时变动的数据分离开来,如果再配合前台的选项,一定程度上实现了

读写分离,在不变数据上做优化,将不会影响建索引的速度,而建索引同样不会影响到不变数据部分的查询性能。

2. 定制文档hash

我们知道,solr在添加文档建索引的时候,通过文档id来进行hash到具体哪一个shard上去,从而实现一个Collection上的数据平衡性。

但是这也有个弊端就是我们在做查询的时候,需要到每个shard并行查询,然后再将总结果返回,这一定程度上降低了性能。

solr支持一个特性就是我们可以通过特殊标记文档id,将这类文档都建立在特定的shard上,然后查询的时候只需要设置下一个参数

就可以支持直接到这个shard查询,从而提高了建索引的速度和查询速度。(带来的弊端就是一个Collection上的几个shard上的文档数量可能不均衡)

注意:这里的路由到特定的shard,但是没办法路由的具体的shard的,这个和直接路由的区别在此。


方法:就是文档id以 !分隔,前面可以为指定一个标示,后面为原来的文档id即可,如solr!doc123.

solr利用了!前面的16个bit做hash,又用了后面的16个bit做hash最终文档ID的hash是将两者组合起来。

查询:

由于你指定了文档的hash,那么在查询的时候如果需要快速查询则也需要特殊设置,方法就是查询时候添加参数:_route_=solr! 即可以直接查询到原来特定的shard上。

如果需要设置多个,可以用,号分隔。比如:_route_=solr!,squid!

用处:

1、对于一些速率要求高的,日志量又不大的,又必须和其他日志混在一个collection中存储的文档,可以通过这种方式来指定。
分享到:
评论

相关推荐

    Solr(Cloudera)使用手册

    Collection是Solr中的数据存储单元,相当于关系数据库中的表。 ##### 创建路径与实例 1. **创建路径**:在根目录下创建一个用于存放Solr实例的目录,例如`/root/zhangsolr2`。 ```bash $ solrctl instanceDir --...

    solr服务器_solr_

    Collection是Solr集群中数据管理和查询的基本单位。 4. **Schema**:Schema定义了Solr如何解析和存储数据。它包括字段定义(如字段类型、是否可搜索、是否存储等)和动态字段规则。合理的Schema设计是确保Solr性能...

    solr安装配置(单核、多核)

    7. 更新 Solr 配置文件 `solrconfig.xml`,设置数据目录为刚才创建的数据目录,替换 `${solr.data.dir:}</dataDir>` 为 `${solr.data.dir:D:/data/solr/collection1/data}</dataDir>`。 8. 设置 Solr 的 `home` ...

    Apache Solr(solr-8.11.1.tgz)

    Apache Solr 是一个开源的全文搜索引擎,由Apache软件基金会维护,是Lucene项目的一部分。它提供了高效、可扩展的搜索和导航功能,广泛应用于企业级的搜索应用中。Solr-8.11.1是该软件的一个特定版本,包含了最新的...

    solr-dataimport-scheduler.jar 可使用于solr7.x版本

    其中,"collection1"是你的Solr集合名称,"full-import"表示全量导入,"clean=true"意味着在导入前清空现有索引。 除了全量导入,DIH还支持增量导入,仅更新自上次导入以来发生改变的数据。这通常通过跟踪数据库的...

    Apache Solr(solr-8.11.1.zip)

    Apache Solr是一款开源的企业级搜索平台,由Apache软件基金会维护。它是基于Java的,提供了高效、可扩展的全文检索、数据分析和分布式搜索功能。Solr-8.11.1是该软件的一个特定版本,包含了从早期版本到8.11.1的所有...

    solr4.7服务搭建

    ### Solr 4.7 服务搭建详细指南 #### 一、环境准备 为了搭建 Solr 4.7 服务,我们需要确保以下环境已经准备好: 1. **Java Development Kit (JDK) 1.7**:Solr 需要 Java 运行环境支持,这里我们选择 JDK 1.7 ...

    solr(solr-9.0.0.tgz)

    Solr,全称为Apache Solr,是Apache软件基金会的一个开源项目,主要用来处理全文搜索和企业级的搜索应用。它基于Java,利用Lucene库构建,提供了高效、可扩展的搜索和导航功能。Solr-9.0.0是该软件的最新版本,此...

    solr-4.4.0.tgz

    你可以根据需求创建自己的核心(collection)或者使用这些示例。 - 编辑 `solrconfig.xml` 和 `schema.xml` 文件以配置索引和搜索行为。 - 使用 `bin/solr start` 命令启动 Solr 服务器。如果你已经将 Solr 集成到...

    solr.war包solr.war包solr.war包solr.war包solr.war包

    solr.warsolr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包...

    Solr项目源码及solr资源包

    - **Collection/Core**:Solr中的数据集,对应于数据库中的表,每个Core有自己的schema和配置。 - **Document**:索引的基本单位,类似于数据库中的记录。 - **Field**:文档中的属性,定义了数据类型和分析方式...

    solr-6.2.0源码

    Solr是Apache软件基金会开发的一款开源全文搜索引擎,它基于Java平台,是Lucene的一个扩展,提供了更为方便和强大的搜索功能。在Solr 6.2.0版本中,这个强大的分布式搜索引擎引入了许多新特性和改进,使其在处理大...

    solr(solr-9.0.0-src.tgz)源码

    Solr是Apache软件基金会的一个开源项目,它是基于Java的全文搜索服务器,被广泛应用于企业级搜索引擎的构建。源码分析是深入理解一个软件系统工作原理的重要途径,对于Solr这样的复杂系统尤其如此。这里我们将围绕...

    solr ik分词器

    3. **配置Solr核心**:接下来,你需要在你的Solr核心(collection)配置文件`solrconfig.xml`中添加IK分词器的相关配置。在`<requestHandler>`或者`<searchComponent>`部分添加以下代码: ```xml <filter class="...

    解决solr启动404问题

    Solr是Apache Lucene项目的一个子项目,是一个高性能、基于Java的企业级全文搜索引擎服务器。当你在尝试启动Solr时遇到404错误,这通常意味着Solr服务没有正确地启动或者配置文件设置不正确。404错误表示“未找到”...

    solr文档.docx

    例如,假设存在三个Solr实例(solr1、solr2、solr3),每个Solr实例拥有三个Core,这样就构成了一个SolrCloud环境。 **逻辑结构** - **Collection**: 在SolrCloud中,一个Collection是一个逻辑意义上的完整索引...

    solr的学习

    ### Solr 学习知识点详解 #### 一、Solr 概述 - **定义**:Solr 是 Apache 下的一个顶级开源项目,采用 Java 开发,它是基于 Lucene 的全文搜索服务器。Solr 可以独立运行在 Jetty、Tomcat 等 Servlet 容器中。 -...

    solr-7.4.0.zip

    Solr,全称为Apache Solr,是一款开源的企业级全文搜索引擎,由Apache软件基金会开发并维护。它是基于Java的,因此在使用Solr之前,确保你的系统已经安装了Java 8或更高版本是至关重要的。标题"solr-7.4.0.zip"表明...

    Apache Solr(solr-7.7.3.tgz)

    它包括了一个预配置的Solr集合(collection)和一个简单的Web应用程序,用于展示搜索结果。 4. **server**: 这个目录包含了Solr服务器运行所需的所有组件,包括Jetty(一个轻量级的HTTP服务器和Servlet容器),配置...

Global site tag (gtag.js) - Google Analytics