一 Solr集群(SolrCloud)
1 什么是SolrCloud
SolrCloud(solr 云)是 Solr 提供的分布式搜索方案,当你需要大规模,容错,
分布 式索引和检索能力时使用 SolrCloud。当一个系统的索引数据量少的时候是
不需要使用 SolrCloud 的,当索引量很大,搜索请求并发很高,这时需要使用
SolrCloud 来满足这些 需求。
SolrCloud 是基于 Solr 和 Zookeeper 的分布式搜索方案,它的主要思想是使用
Zookeeper 作为集群的配置信息中心。
它有几个特色功能:
1)集中式的配置信息
2)自动容错
3)近实时搜索
4)查询时自动负载均衡
2 Solr 集群结构图
3 Solr集群搭建设计
4 安装Solr集群环境
4.1 需求
1) 在 192.168.70.147 环境中安装 zookeeper 集群(已安装)
2) 创建 4 个 tomcat 实例,修改其端口为 8080-8083
3) 使用已安装好的单机版 solr 作为集群的节点使用
4.2 创建solrcloud目录
4.3 安装Zooleeper集群
4.4 安装4个tomcat实例并将tomcat与索引库拷贝到solrCloud目录中
4.5 修改tomcat端口
4.6 修改 solr 服务中指向 solr 索引库的路径
5 创建集群
5.1 上传索引库配置文件
把 solrhome 中的配置文件上传到 zookeeper 集群。使用 zookeeper 的客户端上
./zkcli.sh -zkhost 192.168.70.147:2181, 192.168.70.147:2182, 192.168.70.147:2183 -cmd upconfig -confdir /usr/local/solrcloud/solrhome1/solr/collection1/conf -confname myconf
5.2 修改 solrhome 下的 solr.xml 文件,指定当前实例运行的 ip
地址及端口号
5.3 修改每一台 solr的 tomcat 的 bin 目录下 catalina.sh 文件中
加入 DzkHost 指定 zookeeper 服务器地址 JAVA_OPTS="DzkHost=192.168.70.147:2181,192.168.70.147:2182,192.168.70.14 7:2183" (可以使用 vim 的查找功能查找到 JAVA_OPTS 的定义的位置,然后添加) 注意不能含有空格
5.4 启动tomcat
5.5 创建新的逻辑索引库并分片
创建一个新的 collection,并分两片,每片是一主一备。
使用以下命令创建: http://192.168.70.147:8080/solr/admin/collections?action=CREATE&name=collec tion2&numShards=2&replicationFactor=2 、 5.6 删除原来的逻辑索引库
6 测试SolrJ操作Solr集群
6.1 在集群中添加文档
6.2 删除集群中的文档
6.3 查询集群中的文档
二 Solr实战案例
1.案例需求
1) 使用技术 springMVC+Spring+Mybatis+solrJ
2) 将 mysql 中的 tb_item 表中的部分业务数据导入到 solr 的索引库中
3) 提供一个搜索页面,在搜索页面中完成数据搜索
2 创建实战项目
2.1 创建项目,修改pom文件,添加依赖
2.2 框架整合
3 Spring 整合SolrJ
3.1 创建application-solrj.xml
3.2 编写测试代码
4 将 tb_item 表中的数据导入到 Solr 的索引库中
4.1 创建导入数据service
4.2 创建导入数据 Controller
5 实现搜索业务
5.1 创建搜索页面
5.2 创建SolrDao
5.3 创建搜索service
5.4 创建搜索Controller
5.5 创建展示搜索结果页面