VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Java教程 >
  • Solr 入门实战(2)--SolrCloud 简介及安装

SolrCloud 是 Solr 的集群版,用于在多个服务器之间分发索引内容和查询请求。本文主要介绍 SolrCloud 的基本概念及安装,文中使用到的软件版本:Solr 8.9.0、jdk1.8.0_181。

1、SolrCloud 简介

 SolrCloud 是 Solr 提供的分布式搜索方案,具有容错性和高可用性。SolrCloud 使用 ZooKeeper 来管理集合、分配、主节点和副本,指定哪些服务器需要处理请求。SolrCloud 有如下特点: 

1)集中式的配置信息
2)自动容错
3)近实时搜索
4)查询时自动负载均衡

SolrCloud 的架构图如下:

1)物理结构
    三个 Solr 实例(每个实例包括两个 Core)组成一个 SolrCloud。
2)逻辑结构
    索引集合包括两个 Shard(shard1和shard2),shard1 和 shard2 分别由三个 Core 组成,其中一个 Leader 两个 Replication,Leader 是由 Zookeeper 选举产生。每个 shard 上三个 Core 的索引数据一致,解决高可用问题;用户发起索引请求负载到 shard1 和 shard2 上,解决高并发问题。
a、collection
    Collection 在 SolrCloud 集群中是一个逻辑意义上的完整的索引结构。它常常被划分为一个或多个 Shard(分片),它们使用相同的配置信息。
b、Core
    每个 Core 是 Solr 中一个独立运行单位,提供索引和搜索服务。一个 shard 需要由一个 Core 或多个 Core 组成。
c、Master 或 Slave
    Master 是 master-slave 结构中的主节点,Slave 是 master-slave 结构中的从节点。同一个 Shard 下 master 和 slave 存储的数据是一致的。
d、Shard
    Collection 的逻辑分片。每个 Shard 被化成一个或者多个 replication,通过选举确定哪个是 Leader。

2、SolrCloud 安装

2.1、集群规划

主机 用途
10.40.96.10 安装 Zookeeper
10.40.96.11 安装 Solr 实例
10.40.96.12 安装 Solr 实例
10.40.96.13 安装 Solr 实例

2.2、安装 Zookeeper

 Zookeeper 安装可以参考:https://www.cnblogs.com/wuyongyin/p/12485181.html

安装后 Zookeeper 地址为:10.40.96.10:2181

2.3、单机安装 Solr

在一台机器(10.40.96.10)上先安装 Solr。

2.3.1、下载并解压 Solr

 https://solr.apache.org/downloads.html

tar zxvf solr-8.9.0.tgz

2.3.2、配置 IK 分词器

1、下载 IK 分词器的 jar 包放入 server/solr-webapp/webapp/WEB-INF/lib 目录下;可到 Maven 中央仓库(https://search.maven.org/)下载 jar 包:

<dependency>
    <groupId>com.github.magese</groupId>
    <artifactId>ik-analyzer</artifactId>
    <version>8.4.0</version>
</dependency>

2、将 resources 目录下的 IKAnalyzer.cfg.xml、ext.dic、stopword.dic 放入 server/resources 目录下;可以在 github(https://github.com/magese/ik-analyzer-solr) 上下载这些配置文件。

3、复制默认配置用于 IK 配置

cd ${SOLR_HOME}/server/solr/configsets
cp -r _default/ ik_default

4、将 resources 目录下的 ik.conf 及 dynamicdic.txt 放入 ${SOLR_HOME}/server/solr/configsets/ik_default/conf 目录下;可以在 github(https://github.com/magese/ik-analyzer-solr) 上下载这些配置文件。

5、修改 ${SOLR_HOME}/server/solr/configsets/ik_default/conf/managed-schema,添加 IK 分词器:

复制代码
<fieldType name="text_ik" class="solr.TextField">
  <analyzer type="index">
      <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
      <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
  <analyzer type="query">
      <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
      <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>
复制代码

6、将配置文件上传至 Zookeeper

cd  ${SOLR_HOME}/server/scripts/cloud-scripts
./zkcli.sh -zkhost 10.40.96.10:2181 -cmd upconfig -confname my-config -confdir ${SOLR_HOME}/server/solr/configsets/ik_default/conf/

IK 分词器详细的使用可参考官网说明:https://github.com/magese/ik-analyzer-solr/blob/master/README-CLOUD.md

2.4、分发 Solr 到其他主机

scp -r ${SOLR_HOME} hadoop@10.40.96.12:/home/hadoop
scp -r ${SOLR_HOME} hadoop@10.40.96.13:/home/hadoop

2.5、启动/停止 SolrCloud

在各主机上运行:

bin/solr start -c -z 10.40.96.10:2181 [-p port]

bin/solr stop [-p port]

2.6、控制台

http://ip:8983/solr

3、SolrCloud 控制台使用

3.1、添加 Collection 对应的配置

可以通过命令行来添加配置到 Zookeeper,先使用带 IK 分词器的默认配置(第一台 Solr 主机 10.40.96.11 上有)添加一个新的配置,再在该配置上进行调整修改。

cd  ${SOLR_HOME}/server/scripts/cloud-scripts
./zkcli.sh -zkhost 10.40.96.10:2181 -cmd upconfig -confname new_config_1 -confdir ${SOLR_HOME}/server/solr/configsets/ik_default/conf/

3.2、添加 Collection

使用上一步新加的配置:

3.2、在 Collection 中添加 schema 信息

 可以在 managed-schema 中查看添加的字段信息:

3.3、添加/更新文档

{"id": "123456","age": 40,"name": "李白","poems": "望庐山瀑布","about": "字太白","success": "创造了古代浪漫主义文学高峰、歌行体和七绝达到后人难及的高度"},
{"id": "123457","age": 31,"name": "杜甫","poems": "望岳","about": "字子美","success": "唐代伟大的现实主义文学作家,唐诗思想艺术的集大成者"}

3.4、查询文档

 

来源:

https://www.cnblogs.com/wuyongyin/p/15308593.html


相关教程