用到的相关jar包:http://pan.baidu.com/disk/home#list/path=%2Fsolr

Solr目录结构

Solr 目录

Contrib :solr 为了增强自身的功能,所添加的扩展依赖包。

Dilst:solr build 过程时产生的jar包和war包,还有他的一些依赖包。

Docs: 文档。

Example: 例子

Solr:配置了solr运行至的信息,是一个标准的solrhome目录。

Collection1:solrcore目录

Data: 该目录是储存了索引的目录。

Multicore:可以配置多个solr实例。

Webapps: solr.war的目录

Licenses :版本

Solrhome

从example中copy出solr到新的一个目录,这就是一个solrhome了,可以改名。C:\QQDownload\Solrs\solr1\solrhome

Solrhome是一个目录,是solr运行的主目录,它包括多个solrcore目录。Solrcore目录中就是solr实例的运行配置文件和数据文件。

Solr容器

Solr部署到tomcat。

Solr需要运行在一个servlet容器,它默认提供了一个jetty容器。

把solrhome下webapps的solr.war复制到tomcat下的webapps目录下,解压并删除该war包。

添加solr依赖包,从目录solr-4.9.0\example\lib\ext 复制到 Tomcat 6.0-solr\webapps\solr\WEB-INF\lib

把solr-4.9.0 下的dist和contrib复制到solrhome\collection1\conf 下solrconfig.xml 中配置的相应路径中

依赖包有log4j,需要添加lofg4j的配置文件solr-4.9.0\example\resources 到 Tomcat 6.0-solr\webapps\solr\WEB-INF\classes(该文件夹需手动添加)。

添加sorl和tomcat的关联编辑 Tomcat 6.0-solr\webapps\solr\WEB-INF下的web.xml

添加映射关系,指定solrhome : C:\QQDownload\Solrs\solr1\solrhome

启动tomcat 看是否有错误。

遇到了solrconf.xml 的路径不对的问题,

修改dir 路径并从solr中复制contrilb和dlist目录到相应的位置

Solr功能界面

分词器是需要配置的。

可以操作索引。 在solr中,修改或添加索引 都需要id主键。

配置多solrcore

多solrcore 配置:

Collection1,collection2

一个solr工程,配置多个solrcore 每个solrcore之间是相互独立的,可以单独对外提供服务。

类似于数据库,一个数据库可以后多个实例,如果有新需求,可以直接扩展。

多solrcore在管理索引文件时,可以进行分类管理。

使用solrcloud solr集群, 必须要建立多个solrcore。

复制solrhome下的collection1 到本目录下,改名为collection2.

修改collection2下的core.properties 修改为collection2 就ok了。

重启tomcat。

ok。两个solrcore 互相是独立的。

Schema.xml

Solr 基本使用

C:\QQDownload\Solrs\solr1\solrhome\collection1\conf

Schema.xml 文件在solrcore中的conf目录下,这个文件主要是配置域名及域的类型。

Solr 的域要先定义,后使用。

Name:域名

Type:域的类型(也需要配置)

Indexed:是否索引

Stored:是否存储

Required:是否必须一般id才设置。

multiValued:是否可以多值。如果设置为多值,里面的值就采用数组方式存储。

配置动态域

Name:域名,该域通过一个正则指定。

id

指定一个主键域。每个文档中都应该有个唯一主键。

复制域

Source :源域

Dest:目标域   把源域的内容复制到目标域,目标域必须设置 multiValued="true"

fieldType 配置域的类型

Name:域的类型的名称 引用该类型时: type=” text_general”

Class:指定solr的类型

Analyzer:配置分词器 type:index,query 索引,查询分词器

Tokenizer :分词器

Filter :过滤器

配置中文分词器IkAnalyzer

使用IkAnalyzer中文分词器

把IkAnalyzer2012ff_u1.jar添加到tomcat下的 web-inf/lib目录下

tomcat-6.0.35\apache-tomcat-6.0.35-solr\webapps\solr\WEB-INF\lib

复制IkAnalyzer的配置文件和自定义词典和停用词典到sorl的classpath下

Copy到apache-tomcat-6.0.35-solr\webapps\solr\WEB-INF\classes下

配置fieldtype 指定使用中文分词器。

打开C:\QQDownload\Solrs\solr1\solrhome\collection1\conf下的 scheme.xml文件

配置filed,使用中文分词器的filedtype。

业务域

Id是主键,由于collection1的scheme已经有主键了。

Dataimporthandler 插件

把数据从关系数据库中查询并导入到索引库中。

solr-4.9.0\dist\ solr-dataimporthandler-4.9.0.jar

复制到

Solrs\solr1\contrib\dataimporthandler\lib

下载mysql-connector-java-5.1.7-bin

Mysql数据驱动包拷贝到

Solrs\solr1\contrib\db\lib 下,没有的目录需要手动新建

配置dataimporthandler

在目录\Solrs\solr1\solrhome\collection1\conf下创建data-config.xml文件。

如果是链接sqlserver 注意配置sql和mysql的jdbc驱动,在同一个文件夹下  默认的就使用了mysql 的驱动。

看取到的数据和生成索引的数据数量是否一致,可以查看日志。

Solrj代码操作solr索引 .net solrnet

添加solrj的jar包 ,

路径 \Solrs\solr1\dist\solrj-lib 下的是solrj的依赖包

新加Javaproject,添加相应的solrj对应的包。

把\solr-4.9.0\example\lib\ext 目录下的jar包也添加进项目

代码实现

添加,修改索引。

注意:solr中添加修改索引必须要有主键,主键已经存在就修改,不存在就添加。

删除索引

可以看到有多种删除方法。

已经成功删除

Solrj搜索

可以看到界面实现和代码实现差别不大。

Solr服务器

应用

数据库

SolrCloud 集群搭建

Zookeeper 管理和维护SolrCloud集群

1.安装java环境

把集群需要的文件上传到虚拟机

1.安装centos

2.安装java 虚拟机

3.安装zookeeper 保证是基数节点,最少3个节点。

解压 tar -zxf zookeeper-3.4.6.tar.gz

4.配置zookeeper

在zookeeper1文件夹下 创建data文件夹

在data文件夹下创建myid文件 写入1. echo  1>>data/myid

以此类推,另外几个节点也同样配置。

创建配置文件。在conf文件夹下 zoo_sample.cfg 复制后改名 cp zoo_sample.cfg  zoo.cfg,然后编辑vim zoo.cfg。编辑datadir节点dataDir=/user/local/solrcloud/zookerper1/data .

这里注意clientport节点,同一个机器不要重复了端口号。

添加server.1节点 server.1=1912.168.80.128:2881:3881

每个zookeeper节点都要有这个配置。

Clientport 是zookeeper对外提供服务的端口 2881 是zookeeper服务器内部通信的端口,3881是zookeeper投票的端口,不能重复。

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

syncLimit=5

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just

# example sakes.

dataDir=/tmp/zookeeper

# the port at which the clients will connect

clientPort=2181

# the maximum number of client connections.

# increase this if you need to handle more clients

#maxClientCnxns=60

#

# Be sure to read the maintenance section of the

# administrator guide before turning on autopurge.

#

# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance

"zoo.cfg" 28L, 922C1,1          顶端

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

syncLimit=5

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just

# example sakes.

dataDir=/user/local/solrcloud/zookerper1/data

# the port at which the clients will connect

clientPort=2181

# the maximum number of client connections.

# increase this if you need to handle more clients

#maxClientCnxns=60

#

# Be sure to read the maintenance section of the

# administrator guide before turning on autopurge.

#

# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance

#

# The number of snapshots to retain in dataDir

#autopurge.snapRetainCount=3

# Purge task interval in hours

# Set to "0" to disable auto purge feature

#autopurge.purgeInterval=1

server.1=1912.168.80.128:2881:3881

server.2=1912.168.80.128:2882:3882

server.3=1912.168.80.128:2883:3883

"zoo.cfg" 31L, 1050C 已写入

依次配置好zookeeper2,zookeeper3

5.启动zookeeper

Bin文件夹下内容

创建批量启动文件

也可以单个启动。

添加新建启动文件的执行属性。

6.查看zookeeper状态

./zkServer.sh status

Error contacting service. It is probably not running. 错误 查看zookeeper.out日志,分析错误原因。

添加了 批量启动和查看状态的执行文件

启动成功。

配置搭建solr

一定要注意jar包的版本

主要修改的配置文件:

1.tomcat1/conf/server.xml  如果是同一台服务器就需要修改端口,防止冲突。单台可以使用默认设置。

2.tomcat1/webapps/solr/WEB-INF/web.xml –修改配置solrhome的位置

3.solrhome1/collection1/solrconfig.xml 主要是修改指定dist和contrib目录和后续的插件jar包的路径

solrhome是从solr-4.10.3包下的/example/solr 目录复制的

tomcat 下webapps下的solr 是 solr-4.10.3下/example/solr下webapps的solr.war 解压出来的

安装配置tomcat

[root@supercentos1 download]# tar -zxf apache-tomcat-7.0.39.tar.gz安装tomcat

[root@supercentos1 download]# mv apache-tomcat-7.0.39 /user/local/solrcloud/tomcat/tomcat1

[root@supercentos1 tomcat]# cp -r tomcat1/ tomcat2 复制出来3个tomcat

[root@supercentos1 tomcat]# cp -r tomcat1/ tomcat3

[root@supercentos1 tomcat]# cp -r tomcat1/ tomcat4

[root@supercentos1 tomcat]# vim tomcat1/conf/server.xml 修改各个tomcat端口配置

安装配置solr

[root@supercentos1 download]# tar -zxf solr-4.10.3.tgz.tgz 解压

复制solr-4.10.3/example/solr 复制到solrcloud下的solr文件夹下新建solrhome。

把solrhome下webapps的solr.war复制到tomcat下的webapps目录下,解压并删除该war包。

[root@supercentos1 solr-4.10.3]# cp example/webapps/solr.war / user/local/solrcloud/tomcat/tomcat1/webapps/

[root@supercentos1 solr-4.10.3]# cd/user/local/solrcloud/tomcat/tomcat1/webapps/

unzip  -oq solr.war-d solr

rm solr.war

解压后删除:

添加tomcat下solr依赖包

从目录 solr-4.10.3\example\lib\ext 复制到Tomcat1\webapps\solr\WEB-INF\lib 下

cp -rf example/lib/ext/*.jar  /user/local/solrcloud/tomcat/tomcat1/webapps/solr/WEB-INF/lib

依赖包有log4j,需要添加lofg4j的配置文件solr-4.9.0\example\resources 到 Tomcat 6.0-solr\webapps\solr\WEB-INF\classes(该文件夹需手动添加)。

[root@supercentos1 solr-4.10.3]# cp -rf example/resources/log4j.properties/user/local/solrcloud/tomcat/tomcat1/webapps/solr/WEB-INF/classes/

然后把tomcat1下webapps下的sorl文件夹复制到每个tomcat目录下。

复制相应个数的solr和tomcat, 每个sorl都对应一个tomcat容器。

[root@supercentos1 download]# cp -r  /user/local/solrcloud/tomcat/tomcat1/webapps/solr  /user/local/solrcloud/tomcat/tomcat2/webapps/

修改tomcat下sorl工程web.xml文件

vim tomcat/tomcat1/webapps/solr/WEB-INF/web.xml 2,3,4也同样的步骤修改就行了

[root@supercentos1 solrcloud]# tomcat/tomcat1/bin/startup.sh 启动tomcat1

Solrhome配置

把solr-4.9.0 下的dist和contrib复制到 solrhome\collection1\conf 下solrconfig.xml 中配置的相应路径中

[root@supercentos1 solr-4.10.3]# cp -rf  contrib /user/local/solrcloud/solr/  这个需要在配置文件里配置,看是否对应

[root@supercentos1 solr-4.10.3]# cp -rf  dist  /user/local/solrcloud/solr/

Vim solrhome1/collection1/solrconfig.xml

集群搭建

主要修改solrhome下的solr.xml,关联tomcat的ip和对应端口号。

修改tomcat下的bin目录下的catalina.sh。关联zookerper服务器地址和端口。

1.修改solrhome下的solr.xml配置文件

2.使用zookeeper统一管理配置文件。需要把solrhome下的collection1下的conf文件夹上传到zookeeper。

3.执行/root/download/solr-4.10.3/example/scripts/cloud-scripts 下的

./zkcli.sh  -zkhost 192.168.80.128:2181,192.168.80.128:2182,192.168.80.128:2183 -cmd upconfig -confdir  /user/local/solrcloud/solr/solrhome1/collection1/conf -confname myconf

./zkcli.sh  -zkhost(zookeeper服务器)  192.168.80.128:2181,192.168.80.128:2182,192.168.80.128:2183(zookeeper配置的服务器IP:clientProt) -cmd upconfig -confdir /user/local/solrcloud/solr/solrhome1/collection1/conf(管理的文件目录) -confname myconf(zookeeper管理别名)

4.执行/zookerper1/bin/zkCli.sh 链接到zookerper1

看到文件都传上了

5.关联zookerper和每一台solr。.告诉solr服务zookerper的位置

修改solr的tomcat下的bin目录下的catalina.sh文件,加入DzkHost 指定zookerper服务器的地址:vim tomcat1/bin/catalina.sh

添加

JAVA_OPTS="-DzkHost=192.168.80.128:2181,192.168.80.128:2182,192.168.80.128:2183"

同样的修改各个solr的tomcat服务器。

6.重新启动tomcat ,zookerper。

7.集群配置成功,这里只是单片

出现这个错误就看下solrhome下的solr.xml的ip和端口是否正确了, catalina.sh文件是不是手抖改错地方了,坑爹的。。最好是配完一台后直接复制粘贴的靠谱。

创建有两片的collection

http://192.168.80.128:8080/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2

删除collection

http://192.168.80.128:8080/solr/admin/collections?action=DELETE&name=collection1

Dataimport插件

需要在每个节点都配置下,修改solrconfig.xml,把solrconfig.xml文件上传到zookerper。

把单机版的solrhome/collection1下的conf拷到本地下collection2_shard2_replica1 下。

上传到zookerper 覆盖原来的那个配置。

把dataimporthandler相关的jar包,和数据库mysql或者sqlserver的驱动包放到相应的位置,配置solrconfig.xml。因为我这个是放到了solrhome公用的目录下了,不用每个solrhome都配置了,要是多服务器就需要每台服务器都配置了。

执行/root/download/solr-4.10.3/example/scripts/cloud-scripts 下的

./zkcli.sh  -zkhost 192.168.80.128:2181,192.168.80.128:2182,192.168.80.128:2183 -cmd upconfig -confdir  /user/local/solrcloud/solr/solrhome1/collection2_shard2_replica1/conf -confname myconf

配置中文分词器IkAnalyzer

重启tomcat

使用Solrj查询

String zkHost = "192.168.80.128:2181,192.168.80.128:2182,192.168.80.128:2183";// zookerper地址

CloudSolrServer cloudSolrServer = new CloudSolrServer(zkHost);

// 指定默认链接的collection

cloudSolrServer.setDefaultCollection("collection2");

/// 设置查询条件

SolrQuery qSolrQuery = new SolrQuery();

// 跟上面一样,省略

QueryResponse cloudResponse = cloudSolrServer.query(qSolrQuery);

// 跟单机查询一样,省略。。

增删改查跟单机版的都一样

Solr tomcat zookeeper目录结构

Download 资源

/user/local/solrcloud/zookerper1,2,3

/user/local.solrcloud/tomcat/tomcat1,2,3,4

/user/local.solrcloud/solr/solr1,2,3,4

mysql集群 solr_Solr单机部署和集群部署相关推荐

  1. RabbitMQ集群(单机多实例部署)

    RabbitMQ集群(单机多实例部署) 一.单机多实例部署 单机版安装地址:RabbitMQ3.8.4安装和配置 在单机版基础上 ,也就是一台Linux虚拟机上启动多个RabbitMQ实例,部署集群. ...

  2. MySQL 部署PXC集群

    目录 MySQL 部署PXC集群 PXC集群概述 PXC介绍 PXC特点 相应端口 主机角色 配置主机名及映射关系 部署PXC 安装软件 配置服务 启动服务 测试配置 测试集群高可用 常见错误 MyS ...

  3. Linux中级实战专题篇:rabbitmq(消息中间件p2p模式和pub模式,消息队列rabbitmq详解,单机安装,集群部署以及配置实战)

    一.消息中间件相关概念 1.简介 消息中间件也可以称消息队列,是指用高效可靠的消息传递机制进行与平台相关 的数据交流,并基于数据通信来进行分布式系统的集成.通过提供消息传递和消息 队列模型,可以在分布 ...

  4. Centos7 x86服务器一键部署ES集群/单机shell

    背景 由于日常的实施工作中经常用到单机或者集群的es,每次都手动部署感觉很麻烦,于是抽空写了一个一键部署脚本,通过简单指定集群名称.节点ip.端口等几个配置参数后自动部署es单机或者集群数据库 安装脚 ...

  5. MySQL 部署MHA集群部署

    目录 MySQL 部署MHA集群部署 MHA集群概述 MHA介绍 MHA简介 MHA组成 MHA工作过程 MHA集群架构 MHA工作过程 拓扑结构 IP规划 拓扑图 部署MHA集群 准备集群环境 安装 ...

  6. java redis 多节点,Redis单机多节点集群部署,超简单

    1.在虚拟机中部署具有三个主节点,三个从节点的集群(注,必须要有从节点),虚拟机的IP地址为192.168.133.129,三个主节点的部口号分别为7001(从:7004).7002(从:7005). ...

  7. mysql主从配置duxi_手把手超详细Docker部署MongoDB集群

    Mongodb集群搭建 mongodb 集群搭建的方式有三种:主从备份(Master - Slave)模式,或者叫主从复制模式. 副本集(Replica Set)模式. 分片(Sharding)模式. ...

  8. 【alibaba cloud】在macM1上用docker部署nacos集群

    前提环境 Docker Desktop 组件搭建 Nacos 环境部署(单机) 先从git上克隆nacos-docker的docker-compose的yml文件 git clone https:// ...

  9. MySQL主从架构、读写分离、集群相关面试问题

    文章目录 一.MySQL主从同步原理 二.MySQL主从集群面试相关问题 1.全库同步与部分同步 2.GTID同步集群 3.集群扩容与MySQL数据迁移 4.理解半同步复制 5.主从集群与读写分离 6 ...

最新文章

  1. Windows窗口风格
  2. 【Python-ML】SKlearn库特征选择SBS算法
  3. 在MFC中使用Static text控件显示消息
  4. rxjs里delay operators的用法
  5. 关于人脸和指纹识别共同交流方案
  6. linux系统有几个系统盘,linux操作系统的分区有哪些种类?各分区主要作用是什么?...
  7. 不停止nginx服务的情况下替换nginx执行文件
  8. 很实用的小功能,通过配置Web.xml让点击文件路径的超链接,直接下载而不会在浏览器上尝试打开...
  9. html5 jpg转webp格式转换,JPEG和WebP格式图片的差别
  10. Abaqus简单部件受力分析
  11. 替代亿图的软件-mac,windows都可用
  12. 六级考研单词之路-三十二
  13. 文件的后缀名怎样重命名,重命名为大写字母
  14. 安天 - 网络安全管培生一面
  15. iiOS 6 新特性
  16. 全差分运算放大器ADA4930的分析(2)
  17. 画漫画软件有哪些?这几款绘画软件必不可少!
  18. 计算机操作系统--Linux初试05
  19. 按住ctrl键不能批量选_如何在不按住Ctrl键的情况下遵循Word 2013中的超链接
  20. 用cobar搭建分布式数据库

热门文章

  1. vue 指定元素滚动到页面可视区域
  2. gitlab Enter passphrase for key
  3. 安装主机及服务器系统
  4. 共模电感(扼流圈) 差模电感(扼流圈)
  5. yolov5 检测detect.py笔记
  6. esp12f ESP8266芯片引脚
  7. (三)改掉这些坏习惯,还怕写不出优雅的代码?
  8. Ntrip通讯协议1.0
  9. 好程序员大数据培训分享大数据概述
  10. RabbitMQ(四):mandatory、immediate、备份交换器